有时我会在JavaScript中看到:
a||=1
这意味着 - 据我所知 - 如果未定义“a”,或者为null,则使用值1初始化,否则不会发生任何事情。我在Ruby脚本中也这样做,例如,当没有传递命令行参数时:
gamma=ARGV[0]||"1.0"
然后变量gamma从ARGV [0]获取其值,假设它不是nil,则传递一个值,否则它将是“1.0”。
这是一个很好的简写:
if ARGV[0]==nil then
gamma="1.0"
else
gamma=ARGV[0]
end
甚至:
gamma=ARGV[0]==nil ? "1.0" : ARGV[0]
我想在ruby脚本中使用类似的cinstruction,但它不能按预期工作,因为nil或null值不存在,所以表达式:
$0||"1.0"
总是给出$ 0的值,即使它是一个空字符串“”。 是否可以在bash脚本中使用类似的简写语法?
答案 0 :(得分:1)
在bash
中,您可以使用分配默认值参数expansion operator。
: ${a:=1.0}
${parameter:=word}
如果parameter
未设置或为空,则word
的扩展会分配给parameter
。
:
命令是一个无操作,它被使用,因此我们可以在其参数列表中执行参数扩展。