變數設定方式 | str 沒有設定 | str 為空字串 | str 為非空字串 |
var=${str-expr} |
var=expr | var= | var=$str |
var=${str:-expr} |
var=expr | var=expr | var=$str |
var=${str+expr} |
var= | var=expr | var=expr |
var=${str:+expr} |
var= | var= | var=expr |
var=${str=expr} |
str=expr | str 不變 | str 不變 |
var=expr | var= | var=$str |
|
var=${str:=expr} |
str=expr | str=expr | str 不變 |
var=expr | var=expr | var=$str |
|
var=${str?expr} |
expr 輸出至 stderr | var= | var=$str |
var=${str:?expr} |
expr 輸出至 stderr | expr 輸出至 stderr | var=$str |
[root@dyw219 ~]# unset str; var=${str:-newvar} [root@dyw219 ~]# echo var="$var", str="$str" var=newvar, str= [root@dyw219 ~]# str="oldvar"; var=${str-newvar} [root@dyw219 ~]# echo var="$var", str="$str" var=oldvar, str=oldvar
[root@dyw219 ~]# unset str; var=${str=newvar} [root@dyw219 ~]# echo var="$var", str="$str" var=newvar, str=newvar [root@dyw219 ~]# str="oldvar"; var=${str=newvar} [root@dyw219 ~]# echo var="$var", str="$str" var=oldvar, str=oldvar
[root@dyw219 ~]# unset str; var=${str?novar} -bash: str: novar [root@dyw219 ~]# str="oldvar"; var=${str?novar} [root@dyw219 ~]# echo var="$var", str="$str" var=oldvar, str=oldvar
DYWANG_HOME