Was ist Positional parameter?

Positionsparameter

Ein Positionsparameter ist ein Argument, das in der Befehlszeile angegeben wird und zum Starten des aktuellen Prozesses in einer Shell verwendet wird. Positionsparameterwerte werden in einem speziellen Satz von Variablen gespeichert, die von der Shell verwaltet werden.

Variablen, die Positionsparameter speichern

Ein typisches Beispiel für eine Shell, die Positionsparameter verwendet, ist bash. Sie können bash unter Linux, BSD, macOS X und Windows 10 verwenden.

Betrachten Sie den folgenden Bash-Befehl. Der Befehlsname ist mycommand. Die Befehlszeile hat drei Parameter: eins, zwei und drei vier.

mycommand one two "three four"
Tipp

Positionsparameter werden durch ein Leerzeichen getrennt. Die Shell interpretiert die Dinge nach den Leerzeichen als individuelle Parameter. Wenn der Parameter selbst ein Leerzeichen enthält, schließen Sie es in Anführungszeichen ein, wie in „drei vier“ oben.

Während mycommand ausgeführt wird, stellt bash ihm die folgenden Shell-Variablen zur Verfügung:

Variablennamen Wert
$0 meinBefehl
$1 eines
$2 zwei
$3 drei vier
$# 3
[email protected] eins zwei drei vier
$* eins zwei drei vier

Die Variable $0 wird auf das erste Wort des Befehls gesetzt – den Befehlsnamen. Diese Variable ist nützlich, da Befehle umbenannt oder über einen symbolischen Link ausgeführt werden können. Einige Programme verhalten sich je nach dem zum Ausführen des Programms verwendeten Befehlsnamen unterschiedlich. Mit $0 kann ein Programm sehen, welcher Befehlsname es gestartet hat.

Die Variablen $1, $2 und $3 enthalten jeweils die Werte des ersten, zweiten und dritten Parameters. Wenn es einen vierten Parameter gäbe, würde sein Wert in die Variable $4 gestellt werden. Auf Parameter größer als 9 kann mit geschweiften Klammern um die Zahl zugegriffen werden; Beispielsweise wäre ${10} der zehnte Parameter und ${123} der 123. Parameter.

Die Variable $# enthält die Anzahl der Positionsparameter außer $0.

Die Variable [email protected] enthält den Wert aller Positionsparameter außer $0.

Die Variable $* ist dasselbe wie [email protected], außer wenn es in doppelten Anführungszeichen steht. Wenn es in doppelte Anführungszeichen gesetzt wird, wird $* zu $1c$2c$3c… erweitert, wobei c das erste Zeichen von $IFS ist, der internen Feldtrennvariable von bash. Das IFS wird zum Aufteilen von Wörtern verwendet, und sein Standardwert ist „Leerzeichen, Tabulator oder Zeilenumbruch“ – hier sieht Bash den Anfang und das Ende eines Wortes.

Wenn der Wert von $IFS “_” (ein Unterstrich) ist, “[email protected]“ erweitert sich zu:

 one two three four

Während „$*“ erweitert wird zu:

 one_two_three four

Beispiele

Hier sind Beispiele für die Verwendung von Positionsparametern in Bash.

Mit dem integrierten Befehl set wird der Wert von [email protected] kann für die aktuelle Shell geändert werden. Alles nach set — wird als Positionsparameter registriert.

set -- one two "three four"

Jetzt können wir diese Variablen mit for … in iterieren:

for arg in [email protected]; do echo "$arg"; done
one
two
three four

In bash, [email protected] ist die Standardliste, die beim Laufen durchlaufen wird, daher funktioniert dieser Befehl auch:

for arg; do echo "$arg"; done
one
two
three four

Das Iterieren über “$*” (mit doppelten Anführungszeichen) liefert eine verkettete Zeichenfolge von Positionsparametern, verbunden mit dem ersten Zeichen von $IFS:

IFS=","; for arg in "$*"; do echo "$arg"; done
one,two,three four

Weitere Informationen finden Sie in der Dokumentation der Bash-Befehlsshell.

Parameter, Programmierbegriffe

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here