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