Bash和Zsh中有没有一种方法可以说,如果变量是一个空字符串,则将其设为0



我知道Bash中的空字符串是伪造的,我们应该能够使用类似的东西

a=""
b=($a || 0)

这意味着如果$a是伪造的,那么就把它设为0。但它给

bash: syntax error near unexpected token `||'

我知道我们可以使用[-z $a]和Bash三元形式:

a=""
[[ -z $a ]] && b=0 || b=$a

但是,有没有一种方法可以使用类似于上面第一种形式的东西,在Bash和Zsh中都有效?

您可以使用参数扩展:如果变量PARAMETER未设置或为空字符串,则${PARAMETER:-WORD}将计算为WORD,否则为PARAMETER的值。

因此:

b=${a:-0}

最新更新