POSIX標準の「Utility Argument Syntax」セクションからの適応:
utility_name [-a] [-b] [-c option_argument]
[-d|-e] [-f[option_argument]] [operand...]
この例のユーティリティの名前はutility_name
です。その後に、options、option-arguments、およびoperandsが続きます。
などの-
文字と1文字または数字で構成される引数は、オプション(または、歴史的にはフラグ)とa
呼ばれます。で示されているように、特定のオプションの後にはoption-argumentが続きます。最後のオプションとオプション引数に続く引数は、オペランドと呼ばれます。[-c option_argument]
この規格では、「引数」も次のように定義されています。
シェルコマンド言語argv
で、exec
関数の1つによって作成された配列内の単一の文字列に相当するものとしてユーティリティに渡されるパラメーター。引数は、コマンド名に続くオプション、オプション引数、またはオペランドの1つです。
utility_name
コマンドラインのの後のすべてのものはユーティリティの引数であり、シェルスクリプトの場合はすべて位置パラメータに表示されます。オプション、オプション引数、およびオペランドという用語は、コマンドラインでのこれらの引数のより具体的な名前です。
「フラグ」と「スイッチ」は「オプション」の一般的な同義語です。
の場合
utility -a b=c
-a
およびb=c
は引数です。
-a
ユーティリティがそれを認識した場合のオプションです(ln
ユーティリティには-x
オプション-x
がないためln
、厳密に言えば、ln -x
診断メッセージをトリガーするオプションはありません)。
b=c
オプション引数がある場合-a
のオプションは、引数をとり、それ以外の場合は、オペランドです、
b
そして、c
しているではないオプション、オプション引数ではなく自分自身でオペランド。
上記の私のテキストからわかるように、ユーティリティの概要(ユーティリティのマニュアルに記載されている)から作業する方が、コマンドラインに入力された一般的なコマンドをデコードするよりも簡単でした。マニュアルには、どのオプションがオプション引数を取るか、どの引数がオペランドであるかなどが明確に記載されています。
c
「価値」を呼ぶことは私見で完全に良いです。これは標準化されたものではありませんが、「c
がに与えられる値b
」であると誤解することはほとんどありません。問題のユーティリティのコンテキストからは明らかです。
例えば
$ awk -v var="d" '...' data.in
これを知っている人なら誰でも、「変数にはコマンドラインで値が割り当てられる」awk
という-v var="d"
意味です。awk
var
d