1. 程式人生 > >判斷變量是否定義、空值問題—— “- :- := :+ :? ”

判斷變量是否定義、空值問題—— “- :- := :+ :? ”

區別 color span host 警告 blog code style 變量

分析 - :- := :+ :? 的區別

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]
/* */ opt]#

  如果變量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

判斷變量是否定義、空值問題—— “- :- := :+ :? ”