シェルスクリプトのオプション解析 シェルには、コマンドオプションの解析を行う「getopts」というコマンドがあります。
スクリプトに「シェル名 -オプション」のようにオプションを利用して引数を渡したい場合に使用します。
$ which getopt /usr/bin/getopt
getoptコマンドの定義は以下の通りです。 getopt オプション文字 一時格納変数 オプション文字に「d:ef:」と定義することで、「-d」「-e」「-f」のオプションを取得することを指示します。 オプション文字の後ろに「:」(コロン)を付けることで、「-d test」オプションのパラメータを指定できます。 whileとcase文でオプション解析処理を実行できます。 変数${OPTARG}は、オプションに続く文字列が格納さる「getopts」コマンド固有の変数です。
$ cat ./script.sh #!/bin/sh while getopts d:ef: opt do case ${opt} in d) OPT_D=${OPTARG};; e) OPT_E="flag on";; f) OPT_F=${OPTARG};; \?) exit 1;; esac done echo "OPT_D=${OPT_D}" echo "OPT_E=${OPT_E}" echo "OPT_F=${OPT_F}"