Linux與命令列基礎
$ false && echo A || echo B
$ true || echo C; echo D在 shell 中執行上面兩行時,顯示的字元是下列何者?
- A只有 D
- BB 與 D
- CB、C 與 D
查看答案與解析
正確答案:B. B 與 D
指令結束時會傳回結束狀態,0 表示成功,0 以外表示失敗(上一個指令的值可用 $? 查看)。「A && B」只在 A 成功時執行 B,「A || B」只在 A 失敗時執行 B,「;」則不論結果都執行下一個。第1行中 false 失敗,所以略過 echo A,整個「false && echo A」被當作失敗,於是執行 || 後面的 echo B。第2行中 true 成功,所以不執行 echo C,而「;」後面的 echo D 一定會執行,因此顯示 B 與 D。
- A. 第1行的 echo B 也會執行。被 && 略過之後,結果仍是失敗,所以會執行 || 後面的部分。
- B. 正確。第1行顯示 B,第2行顯示 D。
- C. || 只在左邊的指令失敗時才執行右邊。true 是成功,所以不執行 echo C。