シェルスクリプトのオプション解析
シェルスクリプトのオプション解析
シェルには、コマンドオプションの解析を行う「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}"