getopt
bashコマンドラインにコマンドがあります。getopt
これは短いオプション(例getopt -o axby "$@"
:)で機能し、短くて長いオプション(例getopt -o axby -l long-key -- "$@"
:)では機能しますが、今は必要です。ただ長いオプション(つまり、短いオプションはまったく存在しません)ですが、コマンドはオプションを正しく解析できませgetopt -l long-key -- "$@"
ん。それでは、コマンドを--long-key
どのように使用できますか?getopt
ただ長いオプション?それともこれは不可能ですか、それともコマンドのバグですかgetopt
?
ベストアンサー1
getopt
短期的なオプションがなくても大丈夫です。しかし、短期的なオプションはないと言うべきです。これはマニュアルの珍しい構文です。
最初の部分にno
-o
またはoptionがない場合、--options
2番目の部分の最初の引数は短いオプション文字列として使用されます。
これがテストで起こるものです。これをオプションのリストで唯一のパラメータgetopt -l long-key -- --long-key foo
と考えてください。使用--long-key
-egklnoy
foo
getopt -o '' -l long-key -- "$@"
例えば
$ getopt -l long-key -o '' -- --long-key foo
--long-key -- 'foo'
$ getopt -l long-key -o '' -- --long-key --not-recognized -n foo
getopt: unrecognized option '--not-recognized'
getopt: invalid option -- 'n'
--long-key -- 'foo'