通常,当参数传递给shell脚本时,第一个参数的值为$ {1},第二个参数为$ {2}等。
如何设置这些参数的默认值,因此如果没有参数传递给脚本,我们可以使用$ {1}的默认值?
答案 0 :(得分:13)
您不能,但您可以分配到这样的局部变量:${parameter:-word}
或在需要$ 1的地方使用相同的构造。如果_paramater为null或未设置
注意,这适用于 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"
希望有所帮助。