单词“true”和“false”是 bash 的特殊单词(内置)。
如果在 if 测试中使用,它们的行为符合直觉预期:

$ if true; then echo "true"; else echo "false"; fi
true
$ if false; then echo "true"; else echo "false"; fi
false

但是,这两个测试:
$ [[ true ]] && echo "true" || echo "false"
true
$ [[ false ]] && echo "true" || echo "false"
true

两者结果都为真。为什么?

最佳答案

在这种情况下,[[ … ]] 相当于 test ,即 test truetest false 。查看测试手册(1):
truefalse 都是非空字符串。

关于linux - 为什么 "true"和 "false"测试都是真的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30229547/

10-12 12:20
查看更多