我希望我的脚本能够接受可选输入,
例如,目前我的脚本是
#!/bin/bash somecommand foo
但我想说:
#!/bin/bash somecommand [ if $1 exists, $1, else, foo ]
您可以使用默认值语法:
somecommand ${1:-foo}
以上将,如Bash 参考手册 - 3.5.3 Shell Parameter Expansion [emphasis mine] 中所述:
如果 parameter 未设置 或为 null ,则替换 word 的扩展。否则,参数的值被替换。
如果您只想在参数未设置的情况下替换默认值(但如果它为空则不替换,例如,如果它是空字符串则不替换),请改用以下语法:
somecommand ${1-foo}
再次来自Bash Reference Manual - 3.5.3 Shell Parameter Expansion:
省略冒号会导致仅对未设置的参数进行测试。换句话说,如果包含冒号,则运算符测试参数是否存在以及它的值不为空;如果省略冒号,则运算符仅测试是否存在。