bash 3 或 bash 4 中的默认变量

bash 3 或 bash 4 中的默认变量

我有这个:

local v="${name-$tag}"  # default is name, tag is backup

除非名称为空时它不起作用。因此,实现这一目标的长远之路是:

local v="$name";

if [[ -z "$v" ]]; then
   v = "$tag"
fi

有没有一种简写方法可以做到这一点?

答案1

${variable-alternate value}如果设置了变量,则该构造将使用替代值,但如果将其设置为空字符串(即空白),则不会。如果您想在变量未设置或设置为空字符串时使用备用值,请改用${variable:-alternate value}(注意冒号):

local v="${name:-$tag}"

相关内容