#navi(../)
* case…esacのサンプルシェルスクリプト [#f3f8b517]
いろんな言語にあるswitchやSelect Caseなどの分岐条件記述がありますね。~
今回はシェルスクリプト(bash使用)でcase…esacのサンプルスクリプトのサンプルコードを記します。

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
*関連記事 [#ad384720]
-[[if文のサンプルシェルスクリプト・数値比較編>逆引きシェルスクリプト/if文のサンプルシェルスクリプト・数値比較編]]
-[[if文のサンプルシェルスクリプト・ファイル・ディレクトリ編>逆引きシェルスクリプト/if文のサンプル・ファイル・ディレクトリ編]]
-[[if文の条件式でand, or, notを使う方法>逆引きシェルスクリプト/if文の条件式でand, or, notを使う方法]]


* case...esac [#j1539c4c]
シェルスクリプトでは分岐条件記述のcase...esacは以下のような記述になります。~
(すでにお気づきかもしれませんがesacはcaseを逆にした記述ですね。)

 case 値 in
   パターン)
     処理;;
   パターン)
     処理;;
   パターン)
     処理;;
 esac
以下にいくつかの例を記します。

* case...esacのサンプルスクリプトコード [#q5c6a1c9]
#ref(case-sample.sh)
 #!/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

上記の例では[]の正規表現を使って数値の範囲をパターンの部分に指定しています。~
アスタリスク(*)などや?なども使用可能ですので試してみてください。

* case...esacサンプルシェルスクリプトの実行例 [#kfee7724]
上記のサンプルシェルスクリプトを動作させた例です。

-引数なしで呼び出したためUsageが
 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のサンプルシェルスクリプトでした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS