例子:經常在configure腳本中,會出現以下類似的語句,都表示什麼意思呢?
if test -n "${ZSH_VERSION+set}"; then ac_env_build_alias_set=${build_alias+set} test "${ac_configure_args0+set}" != set |
答案及擴展:
變量賦值方式 |
str 沒有賦值 |
str 爲空字符串 |
str 爲非空字符串 |
備註 |
var=${str-expr} |
var=expr |
var=$str |
對var進行設置 |
|
var=${str+expr} |
var=$str |
var=expr |
對var進行設置,var與str要不都取值,要不都不取值。雖然取值不同 |
|
var=${str=expr} |
str=expr |
str 不變 |
對var與str進行設置, var 與str保持一致 |
|
var=${str?expr} |
expr 輸出至 stderr |
var=str |
對var進行設置 |
|
var=${str:-expr} |
var=expr |
var=$str |
|
|
var=${str:+expr} |
var= |
var=expr |
|
|
var=${str:=expr} |
str=expr |
str 不變 |
|
|
var=${str:?expr} |
expr 輸出至 stderr |
var=str |