bash - getoptsコマンド
シェルスクリプトのオプションを解析したりチェックするためのコマンド。
command [-f] [-v value] というシェルスクリプトがあるとします。
FLAG=FALSE #fオプションが指定されたかのフラグ VALUE= #vオプションの引数を代入する OPT= #getoptsが使用する、オプションを順番に代入する while getopts fv: OPT #fvは使用するオプションを並べたもの、:は引数を必要とするもの do #OPTにオプションを順番に代入していく case $OPT in f) FLAG=TRUE ;; v) VALUE=$OPTARG #OPTARGはgetoptsが使用する、オプション引数をVALUEに代入 ;; \?) echo "Usage; $0 [-f] [-v value]" 1>&2 #エラーメッセージ exit 1 ;; esac done shift `expr $OPTIND -1` #OPTINDは位置パラメータ、最初の引数をを指すようshiftする
引数の処理
#引数が2つの場合 if [ $# -ne 2 ]; then #引数の個数をチェック echo "Usage: ..." exit 1 fi val1=$1 val2=$2 #引数の個数が決まっていない場合 while [ $# -gt 0 ] do val1=$1 #位置パラメータをshiftさせ、値を順に代入 shift ... done