Bash内置,变量赋值通过$ {var: - ""}

时间:2015-09-07 17:05:46

标签: bash variable-assignment built-in

请解释一下,这个结构意味着什么:

foo=${bar:-"const"}
foo=${bar:+"const"} # not sure about using this construction at all

例如:

PATH=${PATH}:${BUILD_DIR:-"/SCA"}/tools
...
if [[ ${DEBUG:-""} = "ON" ]] ; then <...>; fi

我试图在ABSG上查看,试图阅读man builtin,但现在对我来说仍然很复杂。
AFAIK,对于赋值$foo某些值,使用变量$bar的NULL检查很简单。

1 个答案:

答案 0 :(得分:0)

${bar-const}评估字符串&#39; const&#39;是酒吧没有设置。 ${bar:-const}评估字符串&#39; const&#39;如果未设置bar或空字符串。 ${bar+const}评估字符串&#39; const&#39;如果设置了栏。 ${bar:+const}评估字符串&#39; const&#39;如果设置了bar而不是空字符串。

后两个评估为空字符串,否则前两个评估为$ bar。