Gibt es einen Unterschied zwischen einem Befehlszeilenflag und einer Befehlszeilenoption?

Ich höre diese beiden Begriffe austauschbar und frage mich, ob es einen Unterschied zwischen ihnen gibt, wie Flags für einen Buchstaben sind oder Flags nach einem einzelnen Bindestrich sind.

Author: yoyo_fun, 2016-04-26

2 answers

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

"Flags" sind speziell Boolesche Argumente, die durch die bloße Einbeziehung des Befehlszeilenarguments festgelegt werden, ohne dass zusätzliche Daten für das Argument benötigt oder zulässig sind. Wenn Sie das Argument/option/flag einschließen, 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 Nicht-Flag argument:

command.exe -ServerName my.server.com

Mehr info

 12
Author: Ƭᴇcʜιᴇ007,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-04-26 17:38:12

Laut Erstellen Sie großartige Befehlszeilenanwendungen in Ruby 2 Die Hauptunterscheidung ist:a switch nimmt keine Argumente an, während a flag. Zitieren direkt aus dem Buch (Seite 15):

geben Sie hier die Bildbeschreibung ein

Wenn sich ein Schalter in der Langform befindet (z. B. --foo), der ein Verhalten "einschaltet", geht normalerweise auch ein anderer Schalter mit no- voraus (z. B. --no-foo), der das Verhalten "ausschaltet".

Schließlich nehmen Langform-Flags ihr Argument über ein Gleichheitszeichen, während in der Kurzform eines Flag ein Gleichheitszeichen typischerweise nicht verwendet wird. Beispielsweise stellt der Befehl curl, der HTTP-Anforderungen ausführt, sowohl Kurzform-als auch Langform-Flags bereit, um eine HTTP-Anforderungsmethode anzugeben: -X bzw. --request. 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
 3
Author: mbigras,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-11-08 19:14:06