形式
case 式 in
パターン1)処理a
;;
パターン2)処理b
;;
...
*)処理x
;;
esac
機能
文字列の内容に応じて複数ある処理のうち,1つを実行する制御文です。
説明
inはcase文の処理の開始を意味し,esacはcase文の終了を意味します。一致するパターンが存在した場合,「)」から「;;」までに記述されている処理を実行します。1つのパターンは「;;」で区切られ,パターンは複数記述できます。また,*パターンにはどのパターンにも一致しなかった場合の処理を記述します。パターンと一致しているかどうかの判定は,記述された順に行います。式の内容が複数のパターンに一致する場合は,最初に一致したパターンに記述された処理を実行します。
inを「{」,esacを「}」で記述できます。しかし,inの場合はesacを,「{」の場合は「}」を省略できません。それぞれの対応が合わない場合,構文不正でエラー終了します。
パターンには,ワイルドカードによる正規表現の指定ができます。
使用例
case $cnt in
0)
echo "cnt is ZERO" ;;
*)
echo "cnt is not ZERO" ;;
esac
case $cnt in
0)
#-adsh_step_start STEP01
echo "cnt is ZERO"
#-adsh_step_end ;; ←誤り。「;;」の前で改行する。
*)
#-adsh_step_start STEP01
echo "cnt is not ZERO"
#-adsh_step_end
;;
esac