${VARIABLE+x} 在 bash 中是什么意思?

cor*_*192 8 syntax bash

我遇到过在 if 条件中使用此语法的代码:

if [ ! -z ${VARIABLE+x} ]; then
    some commands here
fi
Run Code Online (Sandbox Code Playgroud)

它是否测试非空变量?如果是,它与 有什么不同! -z "$VARIABLE"

cho*_*oba 8

参见参数扩展man bash

${parameter:+word}

使用替代值。如果parameter为 null 或未设置,则不替换任何内容,否则替换 的扩展word

以及同一部分中的几段:

省略冒号会导致仅对未设置的参数进行测试。