Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有谁知道为什么我的 bash 行在下面给出的代码中返回 42:
真 || 真 && 假 || 返回 42
我想知道为什么程序到这一点是错误的|| 返回 42
谢谢回答
true || true && false || return 42
它们只是按顺序处理:
首先它以true: 返回 0开头$?。设置为 0。
true
$?
然后下一个|| true: 未处理,因为$?从第一个开始为 0 true。
|| true
然后下一个是&& false:处理,因为$?从第一个开始仍然是0 true,现在false变成$?了1。
&& false
然后 last is || return 42:$?从 last 开始处理 1 false,代码返回 42。
|| return 42
false