Bash > case文
更新日
2011-11-27
広告
case文の使い方を紹介します (GNU bash, version 4.1.5)。
case文の構文は以下のようになります。
case 変数 in 値1) 処理1 ;; 値2) 処理2 ;; 値3-1 | 値3-2) 処理3;; *) 処理4 esac上記の構文において、Bashは以下のように処理を行います。
- 変数の値が値1ならば、処理1を実施
- 変数の値が値2ならば、処理2を実施
- 変数の値が値3-1または値3-2ならば、処理3を実施
- 変数の値が値1や値2、値3-1, 3-2ではない場合、処理4を実施
- 値には、文字列や数値を指定可能
- 各処理の最後にはセミコロン(;)が2つ必要(ただし、最後の処理の場合は不要)
- バーティカルバー(|)を利用して、2つ以上の条件を指定可能
- アスタリスクを利用して、どんな変数でもヒットさせることが可能
#!/bin/bash case $1 in "start") echo "start!" echo "start something..." ;; stop) echo "stop!" ;; "hop" | step) echo "hop or step" ;; 1) echo "One!";; *) echo "hogehogehoge" esac私の環境では、文字列をダブルクォーテーション(")で囲んでも囲まなくても、結果は同じでした。 また、セミコロンは処理の最後の行の後ろに記述してもよいです。 色々な引数を与えて、結果を見てみます。
test-case$ ./test-case.sh start start! start something... test-case$ ./test-case.sh stop stop! test-case$ ./test-case.sh hop hop or step test-case$ ./test-case.sh step hop or step test-case$ ./test-case.sh aaaaaa hogehogehoge test-case$ ./test-case.sh hogehogehoge引数が無い場合も処理されています。
広告
お問い合わせは sweng.tips@gmail.com まで。