1.06.1基礎
first_commandの終了状態にかかわらずsecond_commandを続けて実行する。
同じコマンド行へ記述する。
適切なリスト演算子はどれか。
× 不正解
;はコマンドを順に並べる。&&や||と異なり、前の終了状態による短絡実行を行わない。
詳細解説
誤り
first_command && second_command最初が成功した場合だけ次を実行する。
&&はfirst_commandが終了状態0のときだけsecond_commandへ進む。失敗時にも実行する要件を満たさない。
誤り
first_command || second_command最初が失敗した場合だけ次を実行する。
||はfirst_commandが非0のときだけsecond_commandを実行する。成功時には右側を省略する。
誤り
first_command | second_command最初の標準出力を次の標準入力へ接続する。
|は2コマンドのデータ経路をつなぐパイプラインである。終了状態に関係なく順次実行するリストの指定とは役割が異なる。
正しい
first_command ; second_commandコマンドを順に実行し、最初の終了状態で次を省略しない。
;はコマンドを順に区切り、first_commandの終了状態でsecond_commandを省略しない。指定された無条件続行に一致する。
実際に確かめる
一時的な検証環境で実行できる例です。
sh -c 'false; printf "second\n"'期待される結果
second理解のポイント
- ;は無条件に次へ
- &&は成功時
- ||は失敗時
確認時の注意
- 確認環境: POSIX sh / 状態変更なし
基礎のおさらい
終了状態
コマンドは通常0で成功、非0で失敗を表す。&&と||はこの値により右側を短絡する。
データと制御
パイプは標準入出力のデータ接続、;・&&・||は主に実行制御という違いがある。
問題IDKL-102-902
確認環境POSIX sh / 状態変更なし
最終技術確認2026-08-13
誤り・権利侵害を報告