このエントリーをはてなブックマークに追加


case…esacのサンプルシェルスクリプト

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


スポンサーリンク

関連記事

case...esac

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

case 値 in
  パターン)
    処理;;
  パターン)
    処理;;
  パターン)
    処理;;
esac

以下にいくつかの例を記します。

case...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

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

case...esacサンプルシェルスクリプトの実行例

上記のサンプルシェルスクリプトを動作させた例です。

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


スポンサーリンク


添付ファイル: filecase-sample.sh 154件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:08 (1308d)