Linux與命令列基礎

$ false && echo A || echo B
$ true || echo C; echo D

在 shell 中執行上面兩行時,顯示的字元是下列何者?

  1. A只有 D
  2. BB 與 D
  3. 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。
練習這個領域 前往領域頁面

Linux與命令列基礎的其他題目

  1. 依序執行上面的指令時,兩個 echo 的輸出是下列何者?
  2. 如上所示,加上引數執行腳本 s.sh 時,輸出是下列何者?
  3. 在 shell 腳本中,上面 if 的條件為真的情況是下列何者?
  4. 上面的操作之後,目錄中的檔案是下列何者?
  5. 目前目錄中有附加執行權限的腳本 run.sh,輸入「run.sh」執行時出現「command not found」,輸入「./run.sh」則能執行。理由是下列何者?