0

我的任务是控制一些 bash 脚本,并通过它们看到以下符号:

INITPATH=${INITPATH:-"include"}

a = a || b据我所知,如果未设置环境变量,这类似于并允许设置默认值?

我想我只是想对此进行一些澄清,以及“:-”是否可以分解或用于其他上下文。在浏览各种 Bash 文档时,我还没有发现它。

4

2 回答 2

3

手册

${parameter:-word}

如果参数未设置或为空,则替换单词的扩展。否则,参数的值被替换。

在您的示例中,如果INITPATH未设置/为空,则将其设置为include.

于 2013-09-24T04:25:52.687 回答
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."
于 2018-02-16T14:58:02.457 回答