您的位置:首页 > 运维架构 > Shell

shell 变量赋值与替换

2015-01-26 16:30 399 查看
:= 如${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 表示值为空,在终端体现为 空行
符号变量
未定义值为空值不为空(为"shellvalue")
echo ${var操作符号"hello world"}echo $varecho ${var操作符号"hello world"}echo $varecho ${var操作符号"hello world"}echo $var
:=hello worldhello worldhello worldhello worldshell valueshell value
=hello worldhello worldnullnullshell valueshell value
:+nullnullshell valuehello worldhello worldshell value
+nullnullnullnullhello worldshell value
:-hello worldnullhello worldnullshell valueshell value
-hello worldnullnullnullshell valueshell value
:?返回一个错误信息
bash: var: hello world
null返回一个错误信息
bash: var: hello world
nullshell valueshell value
?返回一个错误信息
bash: var: hello world
nullnullnullshell valueshell value
本文来自:Linux学习教程网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: