1.06.1基礎
load_cacheが失敗した場合だけ、build_cacheを代替処理として実行する。
適切な記述はどれか。
× 不正解
command1 || command2はcommand1が失敗した場合だけcommand2を実行する。成功時は右側を省略する。
詳細解説
誤り
load_cache && build_cacheload_cache成功時にbuild_cacheを実行する。
&&はload_cacheが成功したときにbuild_cacheを実行する。キャッシュ読込に失敗したときの代替処理にはならない。
正しい
load_cache || build_cacheload_cacheが非0で失敗した場合だけbuild_cacheを実行する。
||はload_cacheが非0で終了した場合だけbuild_cacheを実行する。失敗時に代替処理へ切り替える要件に一致する。
誤り
load_cache ; build_cache成否にかかわらずbuild_cacheを実行する。
;はload_cacheの結果にかかわらずbuild_cacheを実行する。読込成功時にも不要な再構築が走る。
誤り
load_cache | build_cache標準入出力を接続するパイプラインである。
|はload_cacheの標準出力をbuild_cacheの標準入力へ接続する。失敗時分岐を表す演算子ではない。
実際に確かめる
一時的な検証環境で実行できる例です。
sh -c 'false || echo fallback; true || echo skipped'期待される結果
fallbackだけを表示理解のポイント
- ||は失敗時に続行
- 非0が失敗
- 代替処理に利用
確認時の注意
- 確認環境: POSIX sh / 状態変更なし
基礎のおさらい
非0で右側へ
||の左側が非0なら右側を実行し、左側が0なら右側を省略する。
複雑な分岐
処理が複数行になる場合や条件を明示したい場合はif文の方が読みやすいこともある。
問題IDKL-102-904
確認環境POSIX sh / 状態変更なし
最終技術確認2026-08-13
誤り・権利侵害を報告