Bash set -u 允许单个未绑定变量

Sna*_*Doc 7 variables bash

使用 bash,您可以允许set -e特定命令失败,例如:

someCommandThatProbablyFails || true
Run Code Online (Sandbox Code Playgroud)

有什么set -u可以让特定变量不受约束的吗?

具体来说,我正在做类似的事情:

if [ -n "${1}" ]; then
    SOMEVAR="${1}"
else
    SOME_STUFF_TO_DETERMINE_SOMEVAR
fi
Run Code Online (Sandbox Code Playgroud)

在这种情况下,"${1}"如果没有任何内容从命令行传递到脚本中,则会触发未绑定变量错误。

Joh*_*nck 8

您可以使用空字符串作为未设置变量的默认值,如下所示:

${POSSIBLY_UNSET_VARIABLE-}
Run Code Online (Sandbox Code Playgroud)