判斷變量是否定義、空值問題—— “- :- := :+ :? ”
分析 - :- := :+ :? 的區別
1、判斷變量是否定義; r=${xx-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmm"}
[[email protected] opt]# unset xx [[email protected] opt]# r=${xx-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmm"} [[email protected] opt]# echo $r mmmmmmmmmmmmmmmmmmmmmmmmmmmmm [[email protected] opt]# echo $xx [[email protected]
如果變量xx未定義,則 ‘-‘ 代表把 mmmmmmmmmmmmmmmmmmmmmmmmmmmmm 賦值給 r ;不賦值給xx
如果變量xx定義了且為空值的話,則會把空值賦值給 r
如果變量xx不為空的話: 則直接把xx的值賦值給r
2、判斷變量是否定義了且是否為空值; r=${xx:-"mmmmmmmmmmmmmmmmmmmmmmmmmm"}
如果變量xx未定義的話:則‘:-’代表把 mmmmmmmmmmmmmmmmmmmmmmmmmm 賦值給 r ; xx還是未定義
如果變量xx定義了且為空的話:則會把mmmmmmmmmmmmmmmmmmmmmmmmmm賦值給r ; echo $xx 還是為空值
如果變量xx定義了且不為空的話:則把xx的值賦值給r ; 且echo $xx 的值是xx的值
3、判斷 r=${xx:="mmmmmmmmmmmmmmmmmmmmmmmmmm"}
如果變量xx未定義的話:則‘:-’代表把 mmmmmmmmmmmmmmmmmmmmmmmmmm 賦值給 r ; 同時把mmmmmmmmmmmmmmmmmmmmmmmmmm賦值給xx ,即 echo $xx d的值為mmmmmmmmmmmmmmmmmmmmmmmmmm
如果變量xx定義了且為空的話:則‘:-’代表把 mmmmmmmmmmmmmmmmmmmmmmmmmm 賦值給 r ; 同時把mmmmmmmmmmmmmmmmmmmmmmmmmm賦值給xx ,即 echo $xx d的值為mmmmmmmmmmmmmmmmmmmmmmmmmm
4、判斷 r=${xx:?"mmmmmmmmmmmmmmmmmmmmmmmmmm"}
如果變量xx未定義或者為空值的話:則會顯示警告信息 xx:mmmmmmmmmmmmmmmmmmmmmmmmmm
如果變量xx定義了且不為空的話:則‘:?’代表把 mmmmmmmmmmmmmmmmmmmmmmmmmm 賦值給 r
5、判斷 r=${xx:+"mmmmmmmmmmmmmmmmmmmmmmmmmm"}
如果變量xx未定義的話:則不會賦值成功
如果變量定義了且非空的話:則‘:+’代表把 mmmmmmmmmmmmmmmmmmmmmmmmmm 賦值給 r
判斷變量是否定義、空值問題—— “- :- := :+ :? ”