我试过
expr 0==false
Run Code Online (Sandbox Code Playgroud)
但它返回 0 而不是 1。
根据http://wiki.tcl.tk/16295,False 值是不区分大小写的单词 no、off、false、它们的唯一缩写和 0。
很奇怪,还是我的理解有误?
在为expr命令指定操作数时,要根据布尔值进行验证,我们应该只使用string is命令。
% expr {0==false}
0
% expr {[string is false 0]}
1
Run Code Online (Sandbox Code Playgroud)
简单地针对 boolean equal 进行验证==会将它们视为文字字符串/列表。
参考: expr