caseで効率よく分岐処理



case文でif文よりも綺麗に分岐処理を記述することが可能。

case "$hoge" in
AAA)
echo 'hogeの値はAAA'
;;
BBB)
echo 'hogeの値はBBB'
;;
CCC|DDD)
echo 'hogeの値はCCC、又はDDD'
;;
*)
echo 'hogeの値はAAA、BBB、CCC、DDD以外'
;;
esac

それぞれの条件に当てはまった場合にecho処理が走る。
* は正規表現で「全部」という意味。上記の処理の場合は今までの条件以外は「全部」という意味になる。
尚、| は or の意味。


「;;」は該当条件の記述が終了したことを表す。


最後に、eascというcaseの逆を書くことでcase文の終了を記述する必要がある。


.