パラメータとオプションの意味の変更に関する混乱の正式な標準定義はありますか?

パラメータとオプションの意味の変更に関する混乱の正式な標準定義はありますか?

コマンド構文のオプションとパラメータが何であるかを理解するのに混乱した変化が発生しました。

たとえば、私は次の定義に触れました。

  • command -a -b -c d e f

    それらの間にはいくつかの違いがあります-a -b -c。オプションまたはスイッチと呼ぶか、d e fパラメータと呼びます。

  • command -a -b -c d e f

    bashマニュアルなどの一部では、すべての-a -b -c d e fパラメータを呼び出して説明し、すべてのパラメータは$1 $2 $3 $4 $5 $6スクリプトから個別にアクセスできます。

  • command -a b=c

    いくつかの呼び出し-aオプション、b引数c、および値がありますが、いくつかは前の2つのポイントのようにそれらを混在させ、すべての引数を-a b c1つの形式で呼び出します。

これらの3つのバージョンはあまりにもさまざまな呼び出しタイプの例にすぎないので、すべてをリストする方法さえわかりませんが、確立された命名規則が確実にないことがわかりました。

あるいは、少なくともいくつかのランダムなソースからの正規化された命名規則がないことを知っていますが、公式のLinuxおよびGNUアフィリエイトサイトやマニュアルでもこの​​矛盾が発生する可能性があります。

私が参照できる間違いなく正式な命名システムはありますか?

答え1

から適応POSIX規格の「ユーティリティパラメータ構文」セクション:

utility_name [-a] [-b] [-c option_argument]
             [-d|-e] [-f[option_argument]] [operand...]

例のユーティリティ名はですutility_nameオプションオプションパラメータオペランド

文字と単一文字または数字-(例a:)で構成されるパラメータを呼び出します。オプション(または歴史的に言えば、バナー)。いくつかのオプションは次のとおりです。オプションパラメータ、絵が示すように[-c option_argument]。最後のオプションとオプション引数の後に続く引数の名前が指定されます。オペランド

基準「パラメータ」を次のように定義します。

シェルコマンド言語でユーティリティに渡される引数は、関数のargv1つによって生成された配列の単一の文字列と同じですexec。引数は、コマンド名の後に続くオプション、オプションパラメーター、またはオペランドのいずれかです。


utility_nameコマンドラインに表示される内容はすべてユーティリティです。議論すべてが次に表示されます。位置パラメータシェルスクリプトの場合。 「オプション」、「オプションパラメーター」、および「オペランド」という用語は、コマンドライン内のこれらのパラメーターのより具体的な名前です。

「フラグ」と「スイッチ」は、「オプション」の一般的な同義語です。

の場合

utility -a b=c
  • -ab=cパラメータです。
  • -aオプションですもしユーティリティはこれをこのように認識します(厳密には、ユーティリティにはオプションがないため、オプションではなくln診断メッセージをトリガします)。-x-xlnln -x
  • b=cオプションパラメータもしこの-aオプションには引数が必要です。それ以外の場合はオペランドです。
  • bそしてcいいえオペランド自体ではなく、オプション、オプション引数です。

上記のテキストからわかるように、要約ユーティリティ(ユーティリティマニュアルに記載されている)は、コマンドラインに入力された一般的なコマンドを復号化するよりも簡単です。マニュアルでは、どのオプションがオプション引数を取り、どの引数がオペランドかを明確に説明します。

IMHO、c「価値」と呼ぶのは完璧です。標準化されたわけではないが、「といえば誤解する人はほとんどいないだろう。c割り当てられた値b「これは関連するユーティリティの文脈で明らかです。

例えば

$ awk -v var="d" '...' data.in

知っている人はこれが「という意味だとawk言うでしょう。-v var="d"変数にawkコマンドラインにvar値が割り当てられます。d」。

関連情報