1.06.1基礎
check_configが終了状態0で成功した場合に限り、reload_serviceを実行する。
適切な記述はどれか。
× 不正解
command1 && command2はcommand1が成功した場合だけcommand2を実行する。成功は終了状態0で表される。
詳細解説
正しい
check_config && reload_service左側が成功した場合だけ右側を実行するANDリストである。
&&はcheck_configが0で終了した場合だけreload_serviceを実行する。検証成功後に反映する流れを直接表せる。
誤り
check_config || reload_service左側が失敗した場合に右側を実行する。
||はcheck_configが失敗した場合にreload_serviceを実行する。設定が不正な状態で再読込する逆の制御になる。
誤り
check_config ; reload_service左側の成否にかかわらず右側を実行する。
;はcheck_configの成否を条件にしない。検証失敗時にもreload_serviceを実行するため安全な流れにならない。
誤り
check_config | reload_serviceデータをパイプ接続し、成功条件による実行制御ではない。
|はcheck_configの出力をreload_serviceへ渡す。終了状態0を条件とした実行制御ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
sh -c 'true && echo ran; false && echo skipped; :'期待される結果
ranだけを表示理解のポイント
- &&は成功時に続行
- 0が成功
- 短絡評価
確認時の注意
- 確認環境: POSIX sh / 状態変更なし
- 実際の設定反映では対象コマンドの権限と副作用も確認する。
基礎のおさらい
終了状態0
Unix系コマンドでは0が成功を表し、非0は異なる失敗理由を表す。
短絡評価
&&の左側が失敗すると、右側は起動すらされない。単なる実行順ではなく条件分岐として働く。
問題IDKL-102-903
確認環境POSIX sh / 状態変更なし
最終技術確認2026-08-13
誤り・権利侵害を報告