BASH中的逻辑运算符求值 [英] Logic Operator Evaluation in Bash
本文介绍了BASH中的逻辑运算符求值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
逻辑表达式在Bash中的计算似乎是反向的,而不是像C这样的编程语言。
例如,ECHO在成功时将返回0,因此我预期:
echo hi || echo back4more
将输出hi
,然后输出back4more
到标准输出,因为首先返回0,并且需要检查第二个语句以确定整个逻辑OR表达式的真实性。但是,它只打印hi
。
同样,这可以从:
中看到echo hi && echo back4more
,我希望打印hi
,因为回应首先返回0,因此0&;&;(逻辑)将始终为FALSE,因此不需要计算(逻辑)。但实际发生的是hi
和back4more
被打印。
为什么会这样?
推荐答案
成功不是真理。
零退出状态表示成功。非零退出状态表示失败。
零算术值在逻辑上为布尔值FALSE。非零算术值在逻辑上为布尔值True。为什么会这样?
||
检查故障。由于echo
以0退出状态退出,表示成功,||
的右侧不执行。
这篇关于BASH中的逻辑运算符求值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文