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 argv
von einer der exec
Funktionen erstellten Array entspricht. Ein Argument ist eine der Optionen, Optionsargumente oder Operanden nach dem Befehlsnamen.
Alle Dinge nach dem utility_name
in 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
-a
und b=c
sind Argumente,
-a
ist eine Option, wenn das Dienstprogramm sie als solche erkennt (das ln
Dienstprogramm hat keine -x
Option, -x
ist also ln
streng genommen keine Option und ln -x
würde eine Diagnosemeldung auslösen).
b=c
ist ein Optionsargument, wenn die -a
Option ein Argument akzeptiert, andernfalls ist es ein Operand,
b
und c
sind 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 c
einen „Wert“ ist IMHO vollkommen ok. Es ist nicht standardisiert, aber nur sehr wenige würden Sie missverstehen, wenn Sie sagen, " c
ist 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ß, awk
würde sagen, dass -v var="d"
" der awk
Variablen var
der Wert d
in der Befehlszeile zugewiesen wird ".