web-dev-qa-db-ja.com

長い文字列のオプションに二重ダッシュがあるのはなぜですか?

この質問は以前に尋ねられた可能性があります...

--recursiveのようなフラグに-recursiveだけでなく2つのダッシュがあるのはなぜですか?短縮版は-rだけだと知っています。 2つのダッシュが必要になる前に、1つのダッシュを持つフラグが持つことができる最大文字数はありますか?

1
HeavenlyHarmony

問題は、ls -laRのようなことを言うことができるということです。 ls -l -a -Rと同等です。したがって、-recursive-r -e -c -u -r -s -i -v -eとして解釈されます。

1
Scott

プログラムのオプションとしてシングルダッシュまたはダブルダッシュを使用する正確なルールはありません。オプションを自分で処理することにした場合は、必要なものを実装できます。しかし、プログラマーがPITAを探しておらず、プログラムで一般的でよく認識できる方法を使用したい場合は、長いオプション(要求された長い文字列)を二重破線として処理する標準関数getopt/getopt_longを使用します。短いオプション(単一文字)の前に単一のダッシュが付きます。関数getoptは、C言語の<unistd.h>の一部です。同じ関数は、一重および二点鎖線(長い)オプションの解析を利用する標準シェルman getopt 1のUnixベースのシステムで使用できます。

2つのダッシュが必要になる前に、1つのダッシュを持つフラグが持つことができる最大文字数はありますか?

上記の機能を使用する場合、短いオプションは1文字のみにすることができます。

1
Alex