bashでも、caseが使えます。
たまにみかける、
if [ some_rule ]; then #something to do else #something to do fi
を置き換えるにはちょうど良いかもしれません。
POSIX的にどうなのかは、調査中ですが……
実際のところ
記法は以下のとおりです。
case word in [ [(] pattern [| pattern]…) command-list ;;]… esac
これだと、何がなんだかサッパリですが。
以下の公式のサンプルを実行すると、挙動がはっきりしてきます。
echo -n "Enter the name of an animal: " read ANIMAL echo -n "The $ANIMAL has " case $ANIMAL in horse | dog | cat) echo -n "four";; man | kangaroo ) echo -n "two";; *) echo -n "an unknown number of";; esac echo " legs."
これを実行すると、こんな感じです
$ bash case.bash Enter the name of an animal: dog The dog has four legs. $ bash case.bash Enter the name of an animal: kangaroo The kangaroo has two legs. $ bash case.bash Enter the name of an animal: lisp-alien The lisp-alien has an unknown number of legs.
てな感じで、でてきます。