有谁知道为什么我的bash行在下面给出的代码中返回42:
true ||真实&&假||返回42
我想知道为什么程序到达这一点是假的||返回42
感谢您的回答
答案 0 :(得分:7)
true || true && false || return 42
只需按顺序处理它们:
首先它以true
开头:返回0. $?
设置为0。
然后下一个|| true
:由于第一个$?
中的true
为0,因此未处理。
接下来是&& false
:已处理,因为$?
从第一个true
开始仍为0,现在为假将$?
变为1。
最后是|| return 42
:已处理,因为$?
距离上一个false
为1,代码返回42。