例子:经常在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 |