Skip to content

Instantly share code, notes, and snippets.

@i97506051502
Last active January 20, 2017 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save i97506051502/76996d730b04f0e711e39e36644bd3c6 to your computer and use it in GitHub Desktop.
Save i97506051502/76996d730b04f0e711e39e36644bd3c6 to your computer and use it in GitHub Desktop.
いまいちよく分かっていない getopt に関するメモ.環境変数 GETOPT_COMPATIBLE がセットされている場合どんな動きになるのか? メリット・デメリットは? などなど.書きかけ
#!/bin/bash
# 下記,よくできた bash マニュアルだと思っていたら,JP1/Advanced Shell というもののマニュアルだった... bash のマニュアルを確認していないので以下はデタラメかもです.
#
# 参考
#
# getoptコマンド(コマンドラインのオプションを解析する) : JP1/Advanced Shell http://itdoc.hitachi.co.jp/manuals/3021/3021313330/JPAS0337.HTM
# 形式1
#
# 条件 (OR)
# - 引数の最初のパラメーターが「-」で始まっていない場合
# - 環境変数GETOPT_COMPATIBLEが設定されている場合
#
# コマンド形式
# - getopt 解析するオプション 解析される引数
#
# メモ
# - 一番単純なのでは? ただし getopt のオプションを利用できない.
#
# 形式2
#
# 条件 (OR)
# - 形式1の条件に合致しない.
# - -o オプションが指定されていない.
#
# コマンド形式
# - getopt [オプション] [--] 解析するオプション 解析される引数
#
# メモ
# - ショートオプションはいらないが,getopt のオプションを使用したい場合にこれ?
#
# 形式3
#
# 条件 (OR)
# - 形式1の条件に合致しない.
# - -o オプションが指定されている.
#
# コマンド形式
# - getopt [オプション] -o 解析するショートオプション名 [オプション] [--] 解析される引数
#
# メモ
# - ショートオプションを使用したい場合,形式3のみが選択肢となる.
# 形式1
OPT=`getopt help,list:,protocol:,region:,service: "$@"`
# 形式2
OPT=`getopt -- help,list:,protocol:,region:,service: "$@"`
# 形式3
OPT=`getopt -o hl:p:r:s: --long help,list:,protocol:,region:,service: -- "$@"`
if [ ${?} != 0 ] ; then
echo 'Error !!'
fi
eval set -- "${OPT}"
echo "${OPT}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment