位置引数(など)とオプション(および/またはパラメータ)はどちらもコマンドの$1
直後$2
に作成されます。それでは、それらを区別する方法を説明する定義やフレーズは何ですか?
つまり、違いを正式に説明する方法は次のとおりです。位置パラメータそしてオプション(そして/または議論)?
答え1
オプション(しばしば「フラグ」または「スイッチ」とも呼ばれます)は、コマンドライン引数の一種です。コマンドライン引数は、ユーティリティまたはシェル関数のコマンドラインに表示される単一の単語(または引用符で囲まれた文字列)です。
特定の数の引数を使用してシェルスクリプトまたはシェル関数を呼び出すと、個々の引数がスクリプトまたは関数内の位置引数として使用可能になります。
用語:
「引数」は次のとおりです。
- 「オプション」(に似ています
-a
が、ユーティリティがそれをオプションとして認識する場合のみ) - 「オプション引数」(例
foo
:引数-a foo
を含む-a
オプション)または - 「オペランド」(オプション以外のパラメータやif
foo
などのオプションパラメータではありません)-a foo
-a
いいえオプションパラメータを使用します)。
上記のすべての実際の例(GNUを使用mv
):
mv -t targetdir -f file1 file2
- パラメータ:
-t
、、、targetdir
および-f
file1
file2
- オプション:
-t
と-f
- オプションパラメータ:
targetdir
- オペランド:
file1
とfile2
。
~からPOSIXの定義:
シェルコマンド言語では、引数はユーティリティに渡される引数であり、exec関数の1つによって生成されたargv配列の単一の文字列に対応します。引数は、コマンド名の後に続くオプション、オプションパラメーター、またはオペランドのいずれかです。
[オプションは]コマンドの引数で、通常はユーティリティのデフォルト動作に対する変更を指定するために使用されます。
[オプション引数] いくつかのオプションの後に続く引数です。場合によっては、オプション引数はオプションと同じ引数文字列に含まれ、ほとんどの場合は次の引数です。
[オペランドは]コマンドの引数で、処理を完了するために必要な情報をユーティリティに提供するオブジェクトとしてよく使用されます。オペランドは通常、コマンドラインのオプションに従います。
シェルスクリプトまたはシェル関数の位置引数は、引数がオプション、オプション引数、またはオペランドであるかどうかにかかわらず、スクリプトまたは関数のコマンドラインで指定された引数です。
位置パラメータは、次のように設定することもできます。
set -- something "something else" bumblebees
これにより$1
、と が 3 つの文字列に設定され、他の位置引数がすべて消去されます$2
。$3
この場合、位置パラメータはユーティリティコマンドラインに渡されたパラメータともはや関連しません。
また見なさい: