1.06.2基礎
POSIX shのcase文で1つのパターン節の処理を終え、後続のパターンへ流れ込まないようにする。
節末尾に置く記号はどれか。
× 不正解
POSIX caseでは各パターン節を;;で終了し、case文全体をesacで閉じる。
詳細解説
誤り
;単独のセミコロンは個々のコマンドを終えるがcase節の標準終端ではない。
;は節内のコマンド区切りには使えるが、caseが次のパターン処理へ進むための節終端としては;;が必要である。
正しい
;;POSIX caseのパターン節を終了する記号である。
;;は現在のパターン節を終了するPOSIX case構文である。その後に次のパターンを記述できる。
誤り
&&前のコマンド成功時だけ次を実行するANDリスト演算子である。
&&はコマンドの成功時だけ後続を実行する。case節を構文的に閉じる記号ではない。
誤り
doneforやwhileなどのループ本体を閉じる予約語である。
doneはループの終端語である。case文全体はesac、個々の節は;;で閉じる。
実際に確かめる
一時的な検証環境で実行できる例です。
sh -c 'v=b; case $v in a) echo A ;; b) echo B ;; esac'期待される結果
B理解のポイント
- ;;は節終端
- esacはcase全体終端
- doneはループ用
確認時の注意
- 確認環境: POSIX sh / 状態変更なし
- Bashには;&や;;&など追加の終端形式があるが、POSIX shでは;;を使う。
基礎のおさらい
節の終端
標準的な節は;;で終え、一致後に後続パターンへ通常流れ込まない。
全体の終端
caseを逆に綴ったesacがcase文全体の閉じ予約語である。
問題IDKL-102-930
確認環境POSIX sh / 状態変更なし
最終技術確認2026-08-13
誤り・権利侵害を報告