尝试理解我遇到的一些BASH脚本
local var=${3-16}
我理解作业部分和本地部分 - 我的问题是破折号在“$ {3-16}”中的含义。
如果我尝试:
$ maxi=${1-45}; echo $maxi
45 <-- result
请解释破折号的含义。感谢
答案 0 :(得分:10)
执行${parameter-default}
(或${parameter:-default}
)时,如果未设置parameter
,则会使用default
值。
因此,在var=${3-16}
中,如果未设置$3
,则var
将为16,否则var
将为$3
。
您可以查看Advanced Bash-Scripting Guide以获取更多示例和其他替换。
答案 1 :(得分:10)
这意味着“除非参数未分配,在这种情况下使用......”。 (:-
表示“除非参数为空或未分配”。)因此${3-16}
表示“$3
(如果存在),否则为16
”。