Nの外部記憶

作ったアプリや、作成時の備忘録を書くブログ。やりたいことが多すぎるッ!

【bash】オプション解析について

やったこと

  • sh XX.sh -a YYY ZZZのコマンド
  • sh XX.sh -a YYY -b ZZZのコマンド

オプション&引数

while getopts "f:" OPT; do
    case $OPT in
        f) FILE_PATH=${OPTARG};;
    esac
done

shift $(($OPTIND - 1))

JOB_ID=$1

shift $(($OPTIND - 1))でオプションの設定分、引数の数をずらしている。 そのため、JOB_ID=$1で「$1」を指定しても、うまく格納ができている。

オプション複数

while getopts "f:i:" OPT; do
    case $OPT in
        f) FILE_PATH=${OPTARG};;
        i) JOB_ID=${OPTARG};;
    esac
done

引数よりも、オプションを指定させた方が、視認性もいいと思った。

参考

bash: コマンドライン引数のオプション解析(optgets)