變數置換方式 | 變數y沒有設定 | 變數y為空值 | 變數y設定值 |
---|---|---|---|
x=${y-新值} | x= 新值 | x 為空 | x=$y |
x=${y:-新值} | x= 新值 | x= 新值 | x=$y |
x=${y+新值} | x 為空 | x= 新值 | x=新值 |
x=${y:+新值} | x 為空 | x 為空 | x=新值 |
x=${y=新值} | x= 新值 | x 為空 | x=$y |
y= 新值 | y 值不變 | y值不變 | |
x=${y:=新值} | x= 新值 | X= 新值 | x=$y |
y= 新值 | y= 新值 | y值不變 | |
x=${y?新值} | 新值輸出到標準錯誤輸出(螢幕) | x 為空 | x=$y |
x=${y:?新值} | 新值輸出到標準錯誤輸出 | 新值輸出到標準錯誤輸出 | x=$y |
[[email protected] ~]# unset y
#刪除變數y
[[email protected] ~]# x=${y-new}
#進行測試
[[email protected] ~]# echo $x
new
#因為變數y不存在,所以x=new
[[email protected] ~]# echo $y
#變數y還是不存在的
[[email protected] ~]#y=""
#給變數y賦值為空
[[email protected] ~]#x=${y-new}
#進行測試
[[email protected] ~]# echo $x
[[email protected] ~]# echo $y
#變數x和y都為空
如果變數y有值呢?
[[email protected] ~]#y=old
#給變數y賦值
[[email protected] ~]# x=${y-new}
#進行測試
[[email protected] ~]# echo $x
old
[[email protected] ~]# echo $y
old
#變數x和y的值都是old
[[email protected] ~]# unset y
#刪除變數y
[[email protected] ~]# x=${y:=new}
#進行測試
[[email protected] ~]# echo $x
new
[[email protected] ~]# echo $y
new
#變數x和y的值都是new
[[email protected] ~]#y=""
#設定變數y為空
[[email protected] ~]#x=${y:=new}
#進行測試
[[email protected] ~]# echo $x
new
[[email protected] ~]# echo $y
new
#變數x和y的值都是new
[[email protected] ~]# y=old
#給變數y賦值
[[email protected] ~]#x=${y:=new}
#進行測試
[[email protected] ~]# echo $x
old
[[email protected] ~]# echo $y
old
#變數x和y的值都是old
[[email protected] ~]# unset y
#刪除變數y
[[email protected] ~]#x=${y?new}
-bash: y: new
#會把值"new"輸出到螢幕上
[[email protected] ~]# y=old
#給變數y賦值
[[email protected]@localhost ~]# x=${y?new}
#進行測試
[[email protected] ~]# echo $x
old
[[email protected] ~]# echo $y
old
#變數x和y的值都是old