$ {ARGUMENT + x}在Bash中意味着什么?

时间:2017-10-23 14:33:20

标签: bash

我有一个使用以下语法的bash脚本:

if [ ! -z ${ARGUMENT+x} ]; then

" + x"是什么意思?参数名称后的语法?

2 个答案:

答案 0 :(得分:6)

这意味着如果$ARGUMENT不为null,则会被字符串x

替换

让我们尝试一下shell:

$ echo  ${ARGUMENT+x}

$ ARGUMENT=123
$ echo  ${ARGUMENT+x}
x

你也可以用这个表格写这个:

${ARGUMENT:+x}

:不太令人惊讶,因为我们认识到bash parameter expansion

答案 1 :(得分:2)

我没有讨论语法,而是指出它试图做什么:它试图确定变量ARGUMENT是否设置为任何值(空或非空)或不。在现代bash中,可以使用-v运算符代替:

if [[ -v ARGUMENT ]]; then