いろんな言語にあるswitchやSelect Caseなどの分岐条件記述がありますね。
今回はシェルスクリプト(bash使用)でcase…esacのサンプルスクリプトのサンプルコードを記します。
シェルスクリプトでは分岐条件記述のcase...esacは以下のような記述になります。
(すでにお気づきかもしれませんがesacはcaseを逆にした記述ですね。)
case 値 in パターン) 処理;; パターン) 処理;; パターン) 処理;; esac
以下にいくつかの例を記します。
#!/bin/bash function usage { echo -e "Usage:\t"`basename $0`" <numeric values 1-9>" echo -e "\tPlease enter numeric values 1-9." exit 1 } if [ $# -ne 1 ]; then usage fi case $1 in 1) echo "[INFO] enter numric value is 1";; [23]) echo "[INFO] enter numric value is 2 or 3";; [4-9]) echo "[INFO] enter numric value is [4-9]";; 10) echo "[INFO] enter numric value is 10";; *) echo "[ERR] invalid value";; esac
上記の例では[]の正規表現を使って数値の範囲をパターンの部分に指定しています。
アスタリスク(*)などや?なども使用可能ですので試してみてください。
上記のサンプルシェルスクリプトを動作させた例です。
sakura@ubuntu:~$ ./case-sample.sh Usage: case-sample.sh <numeric values 1-9> Please enter numeric values 1-9.
sakura@ubuntu:~$ ./case-sample.sh 1 [INFO] enter numric value is 1
sakura@ubuntu:~$ ./case-sample.sh 2 [INFO] enter numric value is 2 or 3
sakura@ubuntu:~$ ./case-sample.sh 8 [INFO] enter numric value is [4-9]
sakura@ubuntu:~$ ./case-sample.sh z [ERR] invalid value
以上、case...esacのサンプルシェルスクリプトでした。