1

有谁知道为什么我的 bash 行在下面给出的代码中返回 42:

真 || 真 && 假 || 返回 42

我想知道为什么程序到这一点是错误的|| 返回 42

谢谢回答

4

1 回答 1

8
true || true && false || return 42

它们只是按顺序处理:

首先它以true: 返回 0开头$?。设置为 0。

然后下一个|| true: 未处理,因为$?从第一个开始为 0 true

然后下一个是&& false:处理,因为$?从第一个开始仍然是0 true,现在false变成$?了1。

然后 last is || return 42$?从 last 开始处理 1 false,代码返回 42。

于 2013-09-18T15:14:59.383 回答