103.1基礎
grep -q '^enabled$' state.txtを実行する。
一致しなかった場合だけecho DISABLEDを実行する。
適切なコマンド列はどれか。
× 不正解
ORリストの||は、左側が失敗した場合だけ右側を実行する。代替処理や簡単なエラー表示に使える。
詳細解説
誤り
grep -q '^enabled$' state.txt && echo DISABLED一致して成功した場合にDISABLEDを表示するため条件が逆になる。
一致した場合にDISABLEDを表示するため、求める条件と逆になる。
正しい
grep -q '^enabled$' state.txt || echo DISABLED||は左側が非0で終了した場合だけ右側を実行する。
正解。grepが一致せず非0を返した場合だけDISABLEDを表示する。
誤り
grep -q '^enabled$' state.txt; echo DISABLEDgrepの結果に関係なくDISABLEDを表示する。
grepの結果に関係なく右側が実行される。
誤り
grep -q '^enabled$' state.txt | echo DISABLEDパイプは出力を接続するもので、失敗時だけの実行条件にならない。
パイプはデータ経路を作るだけで、失敗時の分岐にはならない。
実際に確かめる
一時的な検証環境で実行できる例です。
LAB_FILE=$(mktemp)
printf 'disabled
' > "$LAB_FILE"
grep -q '^enabled$' "$LAB_FILE" || echo DISABLED
rm "$LAB_FILE"期待される結果
DISABLED理解のポイント
- ||の短絡評価
- grep -qの終了状態
- フォールバック処理
確認時の注意
- 確認環境: Bash 5.2 / GNU grep 3.x
基礎のおさらい
フォールバック
primary || fallbackの形で、失敗時だけ代替処理を実行できる。
grepの終了状態
一致ありは0、一致なしは1、エラーは通常2となる。
問題IDKP-103-021
確認環境Bash 5.2 / GNU grep 3.x
最終技術確認2026-08-12
誤り・権利侵害を報告