過去問ドリル

LinuCレベル1 シェルおよびスクリプト 問14

シェルおよびスクリプト/シェル環境のカスタマイズ

bashで「mkdir /tmp/work && cd /tmp/work」と入力したときの動作として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「シェルおよびスクリプト」に対応。実際の試験問題ではありません)

正解:C

解説

「コマンド1 && コマンド2」は、コマンド1の終了ステータスが0(成功)のときだけコマンド2を実行するリストです。ディレクトリの作成に失敗したのに移動しようとする、といった無駄な処理を防げます。逆に「||」は直前のコマンドが失敗したときだけ次を実行し、「;」は成否に関係なく順に実行します。「&」はコマンドをバックグラウンドで実行させる記号で、&&とは意味が異なります。

選択肢ごとの解説

  • A誤り。成否に関係なく順に実行するのは「;」で区切った場合です。&&は直前の成功を条件にします。
  • B誤り。直前のコマンドが失敗したときだけ次を実行するのは「||」です。
  • C正しい。&&は直前のコマンドの終了ステータスが0のときだけ、次のコマンドを実行します。
  • D誤り。コマンドをバックグラウンドで実行するのは末尾の「&」です。&&は条件付きで順に実行します。
LinuCレベル1の問題を演習モードで解く