2010/01/22

スクリプトで複数の値をとるコマンドラインオプションについて

getoptsを使えって話だが,
hoge.sh -f 1 2 3
みたいな複数の値をとる引数処理ができない.

perlのGetopt::Longならば
GetOptions('f=i{3}' => \@arrf);
などとして複数の値をとるオプションに対応できるが,Getoptのバージョンが古いと駄目.
環境がGetoptのバージョンを更新できないのでperlを使うのはあきらめた.

よってベタに書いた.
forではiだけど,caseで$1とするのがミソ
for i in $@
  do
  case $1 in
      -f)
          shift
          F1=$1
          shift
          F2=$1
          shift
          F3=$1
          ;;
  esac
  shift
done

0 件のコメント: