ロングオプションを任意に短縮できますか?

ロングオプションを任意に短縮できますか?

長いオプションをGNUオプションルールまたは他のルール/標準の一部としてランダムに短縮できますか、それとも特別なC関数によって提供されますか?

たとえば、行動pythonawk行動はなぜ異なるのですか?

$ python --version
Python 2.7.12
$ python --versio
Unknown option: --
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Try `python -h' for more information.

$ awk --version
GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0)
$ awk --versi
GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0)

ありがとうございます。

答え1

これはGNU libcの機能です。getopt_long マンページ:

略語が一意または定義されたいくつかのオプションと正確に一致する場合は、長いオプション名を略語として使用できます。

同様に、GNU libcのArgpインターフェースも略語オプションを受け入れます(プログラムが本当に興味を持っていればそれを拒否できますが)。

で述べたようにxclipコマンドラインの短縮された長いオプション、xlibは同じことをするので、xclock -dig -bri同じですxclock -digital -brief

スクリプトでこれを行うことはお勧めできawk --verませんawk --verbose

Pythonはおそらく独自の引数パーサーを作成したと推定されています。これはglibcを使用しないシステムに移植される可能性があります。彼らはGNU GPLライセンスを使用していないので、glibcを借りることはできません。

関連情報