私が目にするものはすべて、または、 1 文字のオプションのみをサポートするgetopt
少し凝った を使用しています (例: ですが、ではありません)。凝った長いオプションを実行したいのです。getopts
-h
--help
ベストアンサー1
私はこんなことをしたことがあるこれ:
_setArgs(){
while [ "${1:-}" != "" ]; do
case "$1" in
"-c" | "--configFile")
shift
configFile=$1
;;
"-f" | "--forceUpdate")
forceUpdate=true
;;
"-r" | "--forceRetry")
forceRetry=true
;;
esac
shift
done
}
ご覧のとおり、これは 1 文字のオプションと長いオプションの両方を適切にサポートしています。 の場合のように、各引数に値を関連付けることができます--configFile
。また、設定できるオプションなどに関して人為的な制限がなく、非常に拡張性があります。
上記のように、は、"${1:-}"
bash の「厳密」モード ( ) で実行しているときに「バインドされていない変数」エラーが発生するのを防ぎますset -euo pipefail
。