范例一:若 str 這個變數(shù)內(nèi)容存在,則 var 設(shè)定為 str ,否則 var 設(shè)定為 "newvar"
[root@linux ~]# unset str; var=${str-newvar}
[root@linux ~]# echo var="$var", str="$str"
var=newvar, str= <==因?yàn)?str 不存在,所以 var 為 newvar
[root@linux ~]# str="oldvar"; var=${str-newvar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar <==因?yàn)?str 存在,所以 var 等于 str 的內(nèi)容
范例二:若 str 不存在,則 var 與 str 均設(shè)定為 newvar,否則僅 var 為 newvar
[root@linux ~]# unset str; var=${str=newvar}
[root@linux ~]# echo var="$var", str="$str"
var=newvar, str=newvar <==因?yàn)?str 不存在,所以 var/str 均為 newvar
[root@linux ~]# str="oldvar"; var=${str=newvar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar <==因?yàn)?str 存在,所以 var 等于 str 的內(nèi)容
范例三:若 str 這個變數(shù)存在,則 var 等于 str ,否則輸出 "novar"
[root@linux ~]# unset str; var=${str?novar}
-bash: str: novar <==因?yàn)?str 不存在,所以輸出錯誤訊息
[root@linux ~]# str="oldvar"; var=${str?novar}
[root@linux ~]# echo var="$var", str="$str"
var=oldvar, str=oldvar <==因?yàn)?str 存在,所以 var 等于 str 的內(nèi)容
# 上面這三個案例都沒有提到當(dāng) str 有設(shè)定,且為空字串的情況喔!
# 您可以自行測試一下哩!
|