Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash相当于Ruby和JavaScript,或者在初始化变量时_Javascript_Ruby_Bash_Initialization_Logical Operators - Fatal编程技术网

Bash相当于Ruby和JavaScript,或者在初始化变量时

Bash相当于Ruby和JavaScript,或者在初始化变量时,javascript,ruby,bash,initialization,logical-operators,Javascript,Ruby,Bash,Initialization,Logical Operators,有时我会在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] en

有时我会在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脚本中使用类似的Cinstruct,但它不能按预期工作,因为不存在nil或null值,所以表达式:

$0||"1.0"
始终提供$0的值,即使它是空字符串“”。
在bash脚本中也可以使用类似的速记语法吗?

bash
中,可以使用assigndefaultvalues参数

${parameter:=word}

如果
参数
未设置或为空,则
单词
的展开将分配给
参数


命令是一个no-op命令,它的使用只是为了让我们可以在它的参数列表中执行参数扩展。

注意:在JavaScript中,你可以使用
foo=foo | | | bar
,没有
| |=
操作符。在Ruby中,除了nil和false之外的所有内容都被认为是真的,甚至是空字符串。
: ${a:=1.0}