シェルの getopts

シェルスクリプトで引数を扱うためのお作法。

sample.sh
#!/bin/sh

while getopts p:b:f opt
do
  case $opt in
   p)  PROJECT="$OPTARG" ;;
   b)  BUILD_NUMBER="$OPTARG" ;;
   f)  FLAG=1 ;;
   \?) exit 1;;
  esac
done

echo PROJECT : $PROJECT
echo BUILD_NUMBER : $BUILD_NUMBER
echo FLAG : $FLAG
実行例
$ sh sample.sh
PROJECT :
BUILD_NUMBER :
FLAG :

$ sh sample.sh -p hoge -b fuga -f
PROJECT : hoge
BUILD_NUMBER : fuga
FLAG : 1

$ sh sample.sh -p hoge -b fuga -f -a
sample.sh: illegal option -- a