1.03.1基礎
prepareコマンドの成否にかかわらず、その終了後にreportコマンドを実行する。
1行のコマンド列で表す。
適切な演算子はどれか。
× 不正解
;で区切ったコマンドは前の終了状態に関係なく順に実行される。条件付き実行には&&や||を使う。
詳細解説
正しい
prepare ; report;は左の終了状態にかかわらず、続くコマンドを実行する。
正しい。;はprepareが0でも非0でも、その終了後にreportを順次実行する。
誤り
prepare && report左が成功した場合だけ右を実行する。
誤り。&&ではprepareが非0で失敗するとreportが短絡され、必ず実行する要件を満たさない。
誤り
prepare || report左が失敗した場合だけ右を実行する。
誤り。||ではprepareが0で成功した場合にreportを実行せず、失敗時だけの代替処理になる。
誤り
prepare | report左の標準出力を右の標準入力へ接続する。
誤り。|はデータストリームを接続し、成否にかかわらず単純に順次実行する区切りではない。
実際に確かめる
一時的な検証環境で実行できる例です。
false; printf 'reported\n'期待される結果
reported理解のポイント
- ;は無条件の順次実行
- &&は成功時
- ||は失敗時
確認時の注意
- 確認環境: Bash 5.x / shell builtinのみ
基礎のおさらい
終了状態
コマンドは0を成功、非0を失敗として終了し、&&や||の条件判定に使われる。
コマンドリスト
複数コマンドを1行へ書く場合も、区切りの意味により制御フローが変わる。
問題IDKL-101-430
確認環境Bash 5.x / shell builtinのみ
最終技術確認2026-08-13
誤り・権利侵害を報告