web-dev-qa-db-ja.com

コマンドラインフラグとコマンドラインオプションに違いはありますか?

私はこれら2つの用語を交換可能に聞いており、フラグが1文字のオプション用であるか、フラグが1つのダッシュの後にあるかのように、それらの間に違いがあるかどうか疑問に思っています。

8
yoyo_fun

また、「引数」、「オプション」、「スイッチ」も、このコンテキストで交換可能に使用されることがよくあります。

特に「フラグ」はブール値の引数であり、コマンドライン引数を単に含めることによって設定され、引数に追加のデータを必要としたり許可したりすることはありません。引数/オプション/フラグを含めると、「true」としてカウントされ、除外すると、「false」としてカウントされます。

フラグ型引数の例:

command.exe -DeleteFiles

非フラグ引数の例:

command.exe -ServerName my.server.com

詳細

11

= =素晴らしいコマンドラインアプリケーションをRuby 2 でビルドする)によると、主な違いは次のとおりです。switchは引数を取らず、flag does。本から直接引用する(15ページ):

enter image description here

通常、スイッチが長い形式(たとえば--foo)であり、一部の動作が「オン」になる場合は、先頭にno-が付いた別のスイッチもあります(たとえば--no-foo)。これで動作が「オフ」になります。

最後に、長い形式のフラグは等号を介して引数を取りますが、短い形式のフラグでは、等号は通常使用されません。たとえば、HTTPリクエストを作成するcurlコマンドは、HTTPリクエストメソッドを指定するための短い形式のフラグと長い形式のフラグをそれぞれ提供します。それぞれ-X--requestです。次の呼び出し例は、これらのフラグに引数を適切に渡す方法を示しています。

curl -X POST http://www.google.com
curl --request=POST http://www.google.com
2
mbigras