尝试理解一些BASH脚本时,我遇到了这一行。
请解释破折号的含义。谢谢。
local var=${3-16}
我可以理解作业部分和本地部分 - 我的问题是"${3-16}"中的破折号表示什么意思。
如果我尝试:
$ maxi=${1-45}; echo $maxi
45 <-- result
请解释破折号的含义。谢谢。
在执行 ${parameter-default}
(或者${parameter:-default}
) 时,如果parameter
没有被设置,就会使用默认值default
。
因此,在var=${3-16}
中,如果$3
没有被设置,var
将会是16,否则var
将会是$3
。
你可以查看Advanced Bash-Scripting Guide获取更多示例和其他替换方式。
这意味着“除非参数未被赋值,否则使用...”。(:-
表示“除非参数为空或未被指定”。) 因此,${3-16}
的意思是“如果存在$3
,则使用$3
,否则使用16
”。
${parameter-default}
和${parameter:-default}
不同,因为第二个还包括了$parameter
为空的情况。 - fedorqui