:= 如${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 |
相关推荐
shell变量不需要专门的说明语句,通过赋值语句完成变量说明并予以赋值。在命令行或 shell 脚本文件中使用Sname的形式引用变量name的值。1.变量的定义和引用 在shell中,变量的赋值格式如下: name-string ...
第三种变量的替换方法是只有当变量已赋值时才用指定值替换形式: ${variable: +value} 只有变量variable已赋值时,其值才用value替换,否则不进行任何替换,例如: $ERROPT=A $echo ${ERROPT: +"Error ...
变量赋值和替换 4-2. 一般的变量赋值 4-3. 变量赋值,一般的和比较特殊的 4-4. 整型还是 string? 4-5. 位置参数 。。。 。。。 33-13. 显示彩色文本 33-14. "赛马" 游戏 33-15. 返回值技巧 33-16. 整型还是 string? ...
shell变量的作用域 可以用export内置命令将局部变量设置为全局变量。 位置变量 用于向shell脚本传递信息。参数相关数目传入脚本,此数目任意多,但只有前9个可以被访问,使用shift命令可以改变限制。...
4.2. 变量赋值 4.3. Bash变量是不区分类型的 4.4. 特殊的变量类型 5. 引用 5.1. 引用变量 5.2. 转义 6. 退出和退出状态码 7. 条件判断 7.1. 条件测试结构 7.2. 文件测试操作符 7.3. 其他比较操作符 7.4. 嵌套的if/...
第26章 平面文件中的变量赋值 第27章 读取管道输入 第28章 使用cat的自由格式输出 第29章 自动交互处理 第3部分 有用的脚本实例 第30章 使用procmail自动处理邮件 30.1.procmailrc文件 30.2 使用示例 30.3 代码 第...
变量赋值 4.3. Bash变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test结构 7.2. 文件测试操作 7.3. 其他...
4.2. 变量赋值 4.3. Bash 变量是不分类型的 4.4. 特殊的变量类型 5. 引用(翻译的可能有问题,特指引号) 5.1. 引用变量 5.2. 转义(\) 6. 退出和退出状态 7. Tests 7.1. Test 结构 7.2. 文件测试操作 7.3. ...
变量赋值 4.3. Bash变量是不区分类型的 4.4. 特殊的变量类型 5. 引用 5.1. 引用变量 5.2. 转义 6. 退出和退出状态码 7. 条件判断 7.1. 条件测试结构 7.2. 文件测试操作符 7.3. 其他比较操作符 7.4. ...
Shell脚本: 1、#! 指定脚本执行的shell2、# 注释 3、命令或...环境变量-大写 命令执行结果赋值变量使用 命令替换符 “PATH=$PATH:/root/shell.examplels -l /etc/inittab /etc/fstab /etc/services $0 $1 $2
变量赋值和替换 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状态 ...
变量赋值和替换 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 ...
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 命令与...
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环境...
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 ...
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 如何设置变量...
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 ...
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 ...
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 命令与...
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 命令与...