我遇到过在 if 条件中使用此语法的代码:
if [ ! -z ${VARIABLE+x} ]; then
some commands here
fi
Run Code Online (Sandbox Code Playgroud)
它是否测试非空变量?如果是,它与 有什么不同! -z "$VARIABLE"?
参见参数扩展在man bash:
${parameter:+word}使用替代值。如果
parameter为 null 或未设置,则不替换任何内容,否则替换 的扩展word。
以及同一部分中的几段:
省略冒号会导致仅对未设置的参数进行测试。