いろんな言語にある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のサンプルシェルスクリプトでした。