読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

bashでもcase文がつかえる

unix bash

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.

てな感じで、でてきます。

参考もと