Angepasst an den Abschnitt "Utility Argument Syntax" des POSIX-Standards :
utility_name [-a] [-b] [-c option_argument]
[-d|-e] [-f[option_argument]] [operand...]
Das Dienstprogramm im Beispiel heißt utility_name. Es folgen Optionen , Optionsargumente und Operanden .
Die Argumente, die aus -Zeichen und einzelnen Buchstaben oder Ziffern bestehen a, werden als Optionen (oder historisch gesehen als Flags ) bezeichnet. Auf bestimmte Optionen folgt ein Optionsargument , wie mit gezeigt [-c option_argument]. Die Argumente nach den letzten Optionen und Optionsargumenten werden als Operanden bezeichnet .
Der Standard definiert auch "Argument" als
In der Shell-Befehlssprache wird ein Parameter an ein Dienstprogramm übergeben, der einer einzelnen Zeichenfolge in dem argvvon einer der execFunktionen erstellten Array entspricht. Ein Argument ist eine der Optionen, Optionsargumente oder Operanden nach dem Befehlsnamen.
Alle Dinge nach dem utility_namein der Befehlszeile sind die Argumente des Dienstprogramms , und sie werden alle in den Positionsparametern angezeigt, wenn es sich um ein Shell-Skript handelt. Die Begriffe Option, Optionsargument und Operand sind spezifischere Namen für diese Argumente in der Befehlszeile.
"Flag" und "switch" sind gebräuchliche Synonyme für "option".
Im Falle des
utility -a b=c
-aund b=csind Argumente,
-aist eine Option, wenn das Dienstprogramm sie als solche erkennt (das lnDienstprogramm hat keine -xOption, -xist also lnstreng genommen keine Option und ln -xwürde eine Diagnosemeldung auslösen).
b=cist ein Optionsargument, wenn die -aOption ein Argument akzeptiert, andernfalls ist es ein Operand,
bund csind keine Optionen, Optionsargumente und keine Operanden an sich.
Wie Sie meinem obigen Text entnehmen können, wäre es einfacher gewesen, anhand der Zusammenfassung eines Dienstprogramms (wie im Handbuch des Dienstprogramms angegeben) zu arbeiten, als zu versuchen, einen in der Befehlszeile eingegebenen generischen Befehl zu dekodieren. Im Handbuch wird klar angegeben, welche Optionen Optionsargumente annehmen und welche Argumente Operanden usw. sind.
So rufen Sie ceinen „Wert“ ist IMHO vollkommen ok. Es ist nicht standardisiert, aber nur sehr wenige würden Sie missverstehen, wenn Sie sagen, " cist der Wert, dem gegeben wirdb ". Dies ergibt sich aus dem Kontext des betreffenden Dienstprogramms.
Beispielsweise
$ awk -v var="d" '...' data.in
Jeder, der davon weiß, awkwürde sagen, dass -v var="d"" der awkVariablen varder Wert din der Befehlszeile zugewiesen wird ".