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 |
?
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。