私はこれら2つの用語を交換可能に聞いており、フラグが1文字のオプション用であるか、フラグが1つのダッシュの後にあるかのように、それらの間に違いがあるかどうか疑問に思っています。
また、「引数」、「オプション」、「スイッチ」も、このコンテキストで交換可能に使用されることがよくあります。
特に「フラグ」はブール値の引数であり、コマンドライン引数を単に含めることによって設定され、引数に追加のデータを必要としたり許可したりすることはありません。引数/オプション/フラグを含めると、「true」としてカウントされ、除外すると、「false」としてカウントされます。
フラグ型引数の例:
command.exe -DeleteFiles
非フラグ引数の例:
command.exe -ServerName my.server.com
= =素晴らしいコマンドラインアプリケーションをRuby 2 でビルドする)によると、主な違いは次のとおりです。switch
は引数を取らず、flag
does。本から直接引用する(15ページ):
通常、スイッチが長い形式(たとえば--foo
)であり、一部の動作が「オン」になる場合は、先頭にno-
が付いた別のスイッチもあります(たとえば--no-foo
)。これで動作が「オフ」になります。
最後に、長い形式のフラグは等号を介して引数を取りますが、短い形式のフラグでは、等号は通常使用されません。たとえば、HTTPリクエストを作成するcurl
コマンドは、HTTPリクエストメソッドを指定するための短い形式のフラグと長い形式のフラグをそれぞれ提供します。それぞれ-X
と--request
です。次の呼び出し例は、これらのフラグに引数を適切に渡す方法を示しています。
curl -X POST http://www.google.com
curl --request=POST http://www.google.com