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

13

我遇到了一些在 if 语句中使用这种语法的代码:

if [ ! -z ${VARIABLE+x} ]; then
    some commands here
fi

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


1
https://dev59.com/UHA65IYBdhLWcg3w1SfU#13864829 - Oldskool
@Oldskool,您介意将其发布为答案吗? - corvus_192
我不会这样做,因为那就是抄袭。我只是想说那个答案基本上回答了你的问题。 - Oldskool
1个回答

10

请参阅man bash中的参数扩展

${parameter:+word}

使用替代值。如果parameter为空或未设置,则不会被替换,否则将替换为word的扩展内容。

在同一部分的前面几段中:

省略冒号只会检测未设置的参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接