Die folgenden Variablen werden verwendet, um die Positionsparameter abzurufen:
$1, $2, $3, etc.
$@
$#
Sie werden jedoch sowohl für Positionsparameter des Skripts als auch für Positionsparameter einer Funktion verwendet.
Wenn ich diese Variablen innerhalb einer Funktion verwende, geben sie mir die Positionsparameter der Funktion.
Gibt es eine Möglichkeit, die Positionsparameter des Skripts aus einer Funktion heraus abzurufen?
bash
shell-script
function
parameter
user271680
quelle
quelle
ARGV=( "$0" "$@" )
.Eine andere Möglichkeit, den Parameter des Skripts mit bash abzurufen, besteht darin, die Shell-Variablen BASH_ARGC und BASH_ARGV zu verwenden
quelle
Als tragbare POSIX-Lösung kann es manchmal sinnvoll sein, nur das Original
"$@"
zu den Funktionsargumenten hinzuzufügen und die Parameter innerhalb der Funktion zu verschieben:Beispielaufruf:
quelle
Mit dem Shift-Befehl in der Shell können Sie wie unten gezeigt auf alle Positionsparameter zugreifen. Die Parameter werden nach links verschoben und nehmen die erste Position ein
while (("$ #")) gibt die 1-Dollar-Verschiebung wieder
quelle