bashでgetoptsを使うと1文字しか使えないやつを無理やり回避
入門bash 第3版
Bill Rosenblatt
オライリージャパン
2005-10-27

広告は適当

はい、getoptsを便利に使ってるんですが、あれ「-oとか-f」で指定できて、その後の指定もできます。
「-f 20200101」みたいに。

ただ、最近のpythonとかで書いてる「--from-ymd 20200101」みたいな書き方が出来ない。
と思っていたのですが、無理やりそれっぽい記載で突破できました。


while (( "$#" )); do
  case "$1" in
    --from-ymd )
      FROM_DATE=$2
      shift 2
      ;;
    *)
      break
      ;;
  esac
done

ただし、この書き方だと本当に頭の方に書いてないと動かないので、順不同にはならないと思う。あくまで緊急回避措置。

ちなみにこの対応を入れる時に初めて知ったんだけど、shiftコマンドって関数内でやったら、関数の外に出た時に無効になるのね。初めて知った。