我有一个使用以下语法的bash脚本:
if [ ! -z ${ARGUMENT+x} ]; then
" + x"是什么意思?参数名称后的语法?
答案 0 :(得分:6)
这意味着如果$ARGUMENT
不为null,则会被字符串x
$ echo ${ARGUMENT+x}
$ ARGUMENT=123
$ echo ${ARGUMENT+x}
x
你也可以用这个表格写这个:
${ARGUMENT:+x}
:
不太令人惊讶,因为我们认识到bash parameter expansion
答案 1 :(得分:2)
我没有讨论语法,而是指出它试图做什么:它试图确定变量ARGUMENT
是否设置为任何值(空或非空)或不。在现代bash
中,可以使用-v
运算符代替:
if [[ -v ARGUMENT ]]; then