单词“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 true
和 test false
。查看测试手册(1):
true
和 false
都是非空字符串。
关于linux - 为什么 "true"和 "false"测试都是真的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30229547/