シェルスクリプトのオプション解析

シェルスクリプトのオプション解析

シェルには、コマンドオプションの解析を行う「getopts」というコマンドがあります。

スクリプトに「シェル名 -オプション」のようにオプションを利用して引数を渡したい場合に使用します。


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}"



関連ページ