パラメータをコンソールアプリケーションに渡すさまざまな方法

パラメータをコンソールアプリケーションに渡すさまざまな方法

コンソールアプリケーションが次の方法でパラメータを取得するのはなぜですか?

a) one dash (myapp -arg1 123; ls -al)
b) two dashes (myapp --arg1 123; git push origin master --force)
c) without dashes at all (myapp 123; man ls)
d) without dashes but with the equal sign (myapp arg1=123; dd if=/dev/zero)

標準合意書はありませんか?標準のLinuxアプリケーションでも、a)、b)、d)状況は同時に存在します。そして、いつ-helpを使うべきか、いつ--helpを使うべきか覚えにくいです。

ベストアンサー1

ダッシュは、次のことを示すために使用されます。オプション、これはコマンドの動作を修正します。ダッシュのない引数は、コマンドのデフォルト引数(通常はファイル名)を表します。

単一のハイフンは通常、1 文字だけを含むオプションを表します。これらのいくつかのオプションは一緒にグループ化されてls -a -l短縮できますls -al。これは、ほとんどの初期 Unix コマンドの標準ルールでした。

二重ハイフンは完全な単語のオプションを紹介します。このルールは、上記のグループ化と区別するために必要です。このスタイルのオプションは、GNUバージョンのユーティリティで人気を集めました。なぜなら、単一の文字を使用してニーモニックにするにはあまりにも多くの機能があるからです。

オプションに独自のパラメータが必要な場合があります。スタイルはさまざまです。一部のコマンドは-o parameter、一部は使用-oparameter、一部は使用--option=parameter、一部は複数の形式を受け入れます。

独自の引数スタイルを作成するいくつかのコマンドもあります。これは通常、パラメータルールが合意される前の非常に古いコマンドです。これの例には、とtarがありますddfindルールを作成する前に、フルワードオプションを使用した古いコマンドであることも珍しくあります--。要件が一般的なパラダイムに合わないため、その引数は事実上独自の言語ですcommand -options parameters

コマンド間の違いのもう1つの理由は、Unixに元の引数解析ライブラリ機能がなかったためです。関数getoptは、寿命が終わるまでgetopts生成されません。これらのライブラリでは、基本的に一般的な慣行に従う必要があります。しかし、古いプログラムは一時的な引数の解析を行い、プログラマごとに異なる決定をします。

おすすめ記事