如何编写用于默认参数设置的Shell脚本

时间:2019-03-22 13:59:35

标签: linux bash shell

在Shell脚本中,如何将0设置为参数的默认值。

param2=0
${2:-0}

${2:-param2}

这些结果是0: not found

param=$5 
S{1:-$param} 

处于活动状态。但是$ 0表示shell脚本名称。我想使用数字0。

2 个答案:

答案 0 :(得分:0)

要了解此类问题,请在代码之前添加set -x。这将告诉您${2:-0}被扩展为0。 Shell认为这是一个命令,并尝试执行它。

如果您看下面的代码,这将更容易理解:

cmd=echo
${cmd} test

如果运行此命令,${cmd}将被echo替换。

在您的代码中,您可能希望将${2:-0}的结果分配给新变量:

foo=${2:-0}

答案 1 :(得分:0)

echo "param: $param"        # param is not defined
echo "param: ${param-0}"    # use 0 as default
param=99                    # set a value for param
echo "param: ${param-0}"    # ignore the default

输出:

param: 
param: 0
param: 99