Bash 内置变量赋值通过 ${var:-""}
Bash built-in, Variable Assignment through ${var:-""}
请解释一下,这个结构是什么意思:
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 检查
${bar-const}
评估字符串 'const' is bar is unset.
如果 bar 未设置或为空字符串,${bar:-const}
的计算结果为字符串 'const'。
如果设置了 bar,${bar+const}
的计算结果为字符串 'const'。
${bar:+const}
如果设置了 bar 而不是空字符串,则计算结果为字符串 'const'。
后两个否则为空字符串,前两个否则为 $bar。
请解释一下,这个结构是什么意思:
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
.
${bar-const}
评估字符串 'const' is bar is unset.
如果 bar 未设置或为空字符串,${bar:-const}
的计算结果为字符串 'const'。
如果设置了 bar,${bar+const}
的计算结果为字符串 'const'。
${bar:+const}
如果设置了 bar 而不是空字符串,则计算结果为字符串 'const'。
后两个否则为空字符串,前两个否则为 $bar。