bash 脚本的这个默认参数是如何工作的?

bash 脚本的这个默认参数是如何工作的?

我刚刚发现

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.

相关内容