bash で引数付きオプションを定義する

muramatsu 54views 更新:2017年3月15日

ruby とかだと optparser とかで定義して ARGV でよびこめるのですが bash の場合だと以下の感じです。
bash で 引数付きオプションを定義するのですが、getopts 組み込み構文でいけると思います。

# : で定義したいオプションを区切っていくこの場合は s と  e  と f を定義。それぞれが変数 opts に順番に(s,e,f)という感じに getopts を呼ぶたびに入っていく
getopts "s:e:f:" opts
#オプションの引数は自動的に $OPTARG には入ります(今回は s の引数が入ります)
echo $OPTARG

#次は e のオプションの引数を選択して $OPTARG に e オプションの引数を入れる
getopts "s:e:f:" opts
echo $OPTARG

while で オプションを繰り返し定義して呼び込む形にしても楽だと思います。

#繰り返し getopts を呼ぶたびにオプションそのものの値が変数 opts に入っていくので while 繰り返し呼ぶ
while getopts s:e:f: opts do
  #case 文で 変数 opts に入っているオプションそのものが何かを判断する
  case $opts in
    "s" ) echo $OPTARG ;;
    "e" ) echo $OPTARG ;;
    "f" ) echo $OPTARG ;;
  esac
done

という感じになるとおもいます

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません