`

shell 变量赋值与替换

阅读更多

:=  如${var1:=pppp}

情形一:var1未被定义或值为空就把:=后的值赋值给变量var1

得出结果:echo ${var1:=pppp} #pppp

                  echo $var1 #pppp

情形二:如 var2="hello world";${var2:="thank you"} 当变量var2的值不为空,此表达式不改变变量的值

得出结果:echo ${var2:=pppp} #hello world

                  echo $var2 #hello world

总结:(:= )会比较它两边的值,判断左边的变量是否不为空,不为空值不变,否则就把右边的值赋值给左边的变量

= 如${var3=ppppp} 当var3 未被定义时,就把ppppp赋值给var3,若已定义即使值为空也不会把ppppp赋值给变量var3

 

文字描述太罗嗦,还是画个表格

 

以下表格以var变量名为例${var操作符号"hello world"},null 表示值为空,在终端体现为空行

符号 变量  
未定义 值为空 值不为空(为"shell value")
 echo ${var操作符号"hello world"} echo $var   echo ${var操作符号"hello world"}  echo $var  echo ${var操作符号"hello world"} echo $var
 :=  hello world  hello world  hello world  hello world shell value shell value
 =  hello world  hello world  null  null shell value shell value
 :+  null  null  shell value hello world hello world shell value
 +  null  null  null  null hello world shell value
 :-   hello world  null   hello world  null shell value shell value
 -   hello world  null  null  null shell value shell value
 :?

 返回一个错误信息

bash: var: hello world

  null

 返回一个错误信息

bash: var: hello world
null shell value shell value
?

 返回一个错误信息

bash: var: hello world
null null null shell value shell value

 

 

0
3
分享到:
评论

相关推荐

    vim编辑器中 熟练掌握 shell环境变量

    shell变量不需要专门的说明语句,通过赋值语句完成变量说明并予以赋值。在命令行或 shell 脚本文件中使用Sname的形式引用变量name的值。1.变量的定义和引用 在shell中,变量的赋值格式如下: name-string ...

    中文shell十三问--shell入门

    第三种变量的替换方法是只有当变量已赋值时才用指定值替换形式: ${variable: +value} 只有变量variable已赋值时,其值才用value替换,否则不进行任何替换,例如: $ERROPT=A $echo ${ERROPT: +"Error ...

    shell编程指南

    变量赋值和替换 4-2. 一般的变量赋值 4-3. 变量赋值,一般的和比较特殊的 4-4. 整型还是 string? 4-5. 位置参数 。。。 。。。 33-13. 显示彩色文本 33-14. "赛马" 游戏 33-15. 返回值技巧 33-16. 整型还是 string? ...

    shell编程学习笔记

    shell变量的作用域 可以用export内置命令将局部变量设置为全局变量。 位置变量 用于向shell脚本传递信息。参数相关数目传入脚本,此数目任意多,但只有前9个可以被访问,使用shift命令可以改变限制。...

    学习shell必备(CN).chm

    4.2. 变量赋值 4.3. Bash变量是不区分类型的 4.4. 特殊的变量类型 5. 引用 5.1. 引用变量 5.2. 转义 6. 退出和退出状态码 7. 条件判断 7.1. 条件测试结构 7.2. 文件测试操作符 7.3. 其他比较操作符 7.4. 嵌套的if/...

    Shell脚本专家指南

    第26章 平面文件中的变量赋值 第27章 读取管道输入 第28章 使用cat的自由格式输出 第29章 自动交互处理 第3部分 有用的脚本实例 第30章 使用procmail自动处理邮件 30.1.procmailrc文件 30.2 使用示例 30.3 代码 第...

    linux脚本大全必看

    变量赋值 4.3. Bash变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test结构 7.2. 文件测试操作 7.3. 其他...

    高级bash脚本编程指南(中英文合集)

    4.2. 变量赋值 4.3. Bash 变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test 结构 7.2. 文件测试操作 7.3. ...

    高级Bash脚本编程指南.pdf

    变量赋值 4.3. Bash变量是不区分类型的 4.4. 特殊的变量类型 5. 引用 5.1. 引用变量 5.2. 转义 6. 退出和退出状态码 7. 条件判断 7.1. 条件测试结构 7.2. 文件测试操作符 7.3. 其他比较操作符 7.4. ...

    linux shell脚本基础知识学习

    Shell脚本: 1、#! 指定脚本执行的shell2、# 注释 3、命令或...环境变量-大写 命令执行结果赋值变量使用 命令替换符 “PATH=$PATH:/root/shell.examplels -l /etc/inittab /etc/fstab /etc/services $0 $1 $2 

    Linux高级bash编程

    变量赋值和替换 4-2. 一般的变量赋值 4-3. 变量赋值,一般的和比较特殊的 4-4. 整型还是string? 4-5. 位置参数 4-6. wh,whois节点名字查询 4-7. 使用shift 5-1. echo一些诡异的变量 5-2. 转义符 6-1. exit/exit状态 ...

    Advanced Bash-Scripting Guide <>

    变量赋值和替换 4-2. 一般的变量赋值 4-3. 变量赋值,一般的和比较特殊的 4-4. 整型还是string? 4-5. 位置参数 4-6. wh,whois 节点名字查询 4-7. 使用shift 5-1. echo 一些诡异的变量 5-2. 转义符 6-1. exit/exit ...

    UbuntuChina12

    7.2 变量与变量替换 161 7.2.1 变量分类 162 7.2.2 变量的赋值 162 7.2.3 内部变量 163 7.2.4 变量的引用与替换 165 7.2.5 变量的间接引用 167 7.2.6 特殊的变量替换 167 7.2.7 变量声明与类型定义 170 7.3 命令与...

    UNIX操作系统教程 张红光

    2.1.2用户的注册与注销11 2.1.3账户的管理12 2.1.4用户口令的管理12 ...与管道线控制58 4.2.5错误流重定向60 4.2.6命令执行控制及滤波功能60 4.3shell的环境设置62 4.3.1shell环境变量62 4.3.2Linux系统的shell环境...

    GNU make 中文手册 网页版

    6.2 两种变量定义(赋值 ) 6.2.1 递归展开式变量 6.2.2 直接展开式变量 6.2.3 如何定义一个空格 6.2.4 “?=”操作符 6.3 变量的高级用法 6.3.1 变量的替换引用 6.3.2 变量的套嵌引用 6.4 变量取值 6.5 ...

    GNU make中文手册

    6.2 两种变量定义(赋值 ) 6.2.1 递归展开式变量 6.2.2 直接展开式变量 6.2.3 如何定义一个空格 6.2.4 “?=”操作符 6.3 变量的高级用法 6.3.1 变量的替换引用 6.3.2 变量的套嵌引用 6.4 变量取值 6.5 如何设置变量...

    GNU MAKE 中文手册

    6.2 两种变量定义(赋值 ) 6.2.1 递归展开式变量 6.2.2 直接展开式变量 6.2.3 如何定义一个空格 6.2.4 “?=”操作符 6.3 变量的高级用法 6.3.1 变量的替换引用 6.3.2 变量的套嵌引用 6.4 变量取值 6.5 ...

    Gun make中文手冊

    6.2 两种变量定义(赋值 ) 6.2.1 递归展开式变量 6.2.2 直接展开式变量 6.2.3 如何定义一个空格 6.2.4 “?=”操作符 6.3 变量的高级用法 6.3.1 变量的替换引用 6.3.2 变量的套嵌引用 6.4 变量取值 6.5 ...

    Ubuntu权威指南(2/2)

    7.2 变量与变量替换 161 7.2.1 变量分类 162 7.2.2 变量的赋值 162 7.2.3 内部变量 163 7.2.4 变量的引用与替换 165 7.2.5 变量的间接引用 167 7.2.6 特殊的变量替换 167 7.2.7 变量声明与类型定义 170 7.3 命令与...

    Ubuntu权威指南(1/2)

    7.2 变量与变量替换 161 7.2.1 变量分类 162 7.2.2 变量的赋值 162 7.2.3 内部变量 163 7.2.4 变量的引用与替换 165 7.2.5 变量的间接引用 167 7.2.6 特殊的变量替换 167 7.2.7 变量声明与类型定义 170 7.3 命令与...

Global site tag (gtag.js) - Google Analytics