我的任务是控制一些bash脚本,并查看它们我会遇到以下表示法:
INITPATH=${INITPATH:-"include"}
据我所知,这与a = a || b
类似,并且如果未设置环境变量,则允许设置默认值?
我想我只是想对此进行一些澄清,以及“: - ”是否可以分解或在其他情况下使用。我还没有碰到它浏览各种Bash文档。
答案 0 :(得分:3)
来自manual:
${parameter:-word}
如果参数未设置或为null,则替换 word 的扩展。 否则,参数的值将被替换。
在您的示例中,如果INITPATH
未设置/ null,则设置为include
。
答案 1 :(得分:0)
这包含了大部分替代
的方法echo "$\{var}"
echo "Substitute the value of var."
echo "1 - $\{var:-word}"
echo "If var is null or unset, word is substituted for var. The value of var does not change."
echo "2- $\{var:=word}"
echo "If var is null or unset, var is set to the value of word."
echo "5-$\{var:?message}"
echo "If var is null or unset, message is printed to standard error. This checks that variables are set correctly."
echo "3 - $\{var:+word}"
echo "If var is set, word is substituted for var. The value of var does not change."