我刚刚发现
default="no parameter provided"
echo ${1:-$default} # in a script
这个叫什么?它是内置的吗?它真的像看起来那样有效吗?
答案1
这是一部分shell参数扩展并且内置于任何 POSIX shell:
${parameter:-word}
如果范围未设置或为 null,则扩展单词被替换。否则,值范围被替换。
在您的示例中,如果${1}
不是 unset 或 null,则输出其值,否则${default}
输出 的值。
答案2
它的Parameter Expansion
描述在Bash 联机帮助页您还可以使用以下命令在本地调用man bash
:
${parameter:-word}
Use Default Values. If parameter is unset or null, the
expansion of word is substituted. Otherwise, the value
of parameter is substituted.