unix shell脚本的默认值?

时间:2011-07-08 17:22:32

标签: linux unix shell scripting

通常,当参数传递给shell脚本时,第一个参数的值为$ {1},第二个参数为$ {2}等。

如何设置这些参数的默认值,因此如果没有参数传递给脚本,我们可以使用$ {1}的默认值?

4 个答案:

答案 0 :(得分:13)

您不能,但您可以分配到这样的局部变量:${parameter:-word}或在需要$ 1的地方使用相同的构造。如果_paramater为null或未设置

,则此menas使用 word

注意,这适用于 bash ,请检查shell的默认值的语法

答案 1 :(得分:9)

您可以考虑:

set -- "${1:-'default for 1'}" "${2:-'default 2'}" "${3:-'default 3'}"

脚本的其余部分可以使用$1$2$3而无需进一步检查。

注意:如果您在参数末尾有一个不确定的文件列表,这不会很好用;当你只能有零到三个参数时,它运作良好。

答案 2 :(得分:4)

#!/bin/sh
MY_PARAM=${1:-default}

echo $MY_PARAM

答案 3 :(得分:0)

也许我不太了解你的问题,但我会倾向于以不太复杂的方式解决问题:

                     ! [[ ${1} ]]   &&   declare $1="DEFAULT"

希望有所帮助。