Bashでcase文を利用する
構文
Bashにおけるcase文の使い方。
1 2 3 4 5 6 7 8 9 10 | case 変数 in 値1) 処理1;; 値2) 処理2;; 値3 | 値4) 処理3;; *) 処理4 esac |
各処理の最後にはセミコロン(;)が2つ必要。ただし、最後の処理の場合は不要。
バーティカルバー(|)を利用して、複数の条件を指定可能。
アスタリスクを利用して、どんな値でもヒットさせることが可能。
文字列をダブルクォーテーション(“)で囲んでも囲まなくても、結果は同じ。
引数が無い場合も処理される。
サンプル
以下、サンプル。最初の引数($1)をcase文の変数としている。
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash case $1 in "01") echo "case01";; "02") echo "case02";; "03-1" | "03-2") echo "case03" echo "type01 or 02;; *) echo "default" esac |
実行結果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -bash-3.2$ ./test_case.sh 01 case01 -bash-3.2$ ./test_case.sh 02 case02 -bash-3.2$ ./test_case.sh 03-1 case03 type01 or 02 -bash-3.2$ ./test_case.sh 03-2 case03 type01 or 02 -bash-3.2$ ./test_case.sh 03-3 default -bash-3.2$ ./test_case.sh 04 default -bash-3.2$ ./test_case.sh default |
1件の返信
[…] セミコロン一つ(;)は、複数の命令文を1行に書く際の区切り記号。case文でもこれができるため、それと区別するためにセミコロンを二つ打つことにしたらしい。書式として理解した方がいいのかも?なお、case文の最後の選択肢(ここでは18行目)のみ、;;をつけなくてもOKとのこと。 […]