Gibt es einen Unterschied zwischen einem Befehlszeilenflag und einer Befehlszeilenoption?

4960
yoyo_fun

Ich höre diese beiden Ausdrücke austauschbar, und ich frage mich, ob es einen Unterschied zwischen ihnen gibt, wie beispielsweise Flaggen für einen Buchstaben stehen oder Flaggen hinter einem einzelnen Gedankenstrich stehen.

5

2 Antworten auf die Frage

7
Ƭᴇcʜιᴇ007

Sie finden wahrscheinlich, dass "Argumente", "Optionen" und "Schalter" auch in diesem Kontext häufig austauschbar verwendet werden.

"Flags" sind insbesondere boolesche Argumente, die durch die bloße Einbeziehung des Befehlszeilenarguments festgelegt werden, ohne dass zusätzliche Daten für das Argument erforderlich sind oder zulässig sind. Wenn Sie das Argument / option / flag angeben, zählt es als "true" und wenn Sie es ausschließen, zählt es als "false".

Beispiel Flag-Typ Argument:

command.exe -DeleteFiles

Beispiel für ein Nicht-Flag-Argument:

command.exe -ServerName my.server.com

Mehr Info

Einfache und effektive Erklärung. Sie könnten diesen zweiten Absatz wahrscheinlich sogar in das Tag-Wiki für Flag einfügen, da er derzeit keine Beschreibung hat und dadurch weniger eindeutig ist. Broots Waymb vor 8 Jahren 0
1
mbigras

Laut Build Awesome Command-Line Applications in Ruby 2 ist der Hauptunterschied: a switchnimmt keine Argumente an, während a flagtut. Zitate direkt aus dem Buch (Seite 15):

Wenn ein Schalter in der Langform (zum Beispiel --foo) ist, wodurch ein Verhalten aktiviert wird, gibt es normalerweise auch einen anderen Schalter, dem no-(zum Beispiel --no-foo) das Verhalten abgeschaltet wird.

Langform-Flags führen schließlich ihre Argumente über ein Gleichheitszeichen, während in der Kurzform eines Flags normalerweise kein Gleichheitszeichen verwendet wird. Zum Beispiel kann der curlBefehl, die HTTP - Anfragen macht, bietet sowohl Kurzform und Fahnen Lang Form eine HTTP - Request - Methode angeben: -Xund --request, respectively. Die folgenden Beispielaufrufe zeigen, wie Argumente ordnungsgemäß an diese Flags übergeben werden:

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