Bash:为什么[[zero -eq 0]]评估为真?

时间:2017-06-30 01:12:46

标签: bash

在Mac和Ubuntu上,运行此命令的计算结果为true。为什么呢?

[[ zero -eq 0 ]] && echo true
true

1 个答案:

答案 0 :(得分:6)

-eq运行数字比较。

当一个字符串作为操作数给出时,会查找一个命名相似的变量的值。

因此,这相当于[[ $zero -eq 0 ]]。空字符串的数值为0。因此,除非为名为zero的shell变量分配了不同的值,否则这相当于[[ 0 -eq 0 ]],这是真的。