在Shell脚本中,如何将0设置为参数的默认值。
param2=0
${2:-0}
和
${2:-param2}
这些结果是0: not found
和
param=$5
S{1:-$param}
处于活动状态。但是$ 0表示shell脚本名称。我想使用数字0。
答案 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