In Bash werden Parameter und Argumente verwendet, um Daten an Skripte oder Funktionen zu übergeben. Sie ermöglichen es, Skripte dynamisch zu gestalten und Eingaben zur Laufzeit zu verarbeiten.
Ein Parameter ist ein Platzhalter, der mit einem Wert (Argument) gefüllt wird. Parameter können positionsbasiert oder speziell sein:
$#: Anzahl der übergebenen Argumente. $@: Liste aller Argumente (als separate Einträge). $*: Liste aller Argumente (als eine Zeichenkette). $$: Prozess-ID des aktuellen Skripts. $?: Exit-Status des zuletzt ausgeführten Befehls.
Argumente sind die tatsächlichen Werte, die beim Aufruf eines Skripts oder einer Funktion an die Parameter übergeben werden.
bash mein_skript.sh Hallo Welt
#!/bin/bash echo "Skriptname: $0" echo "Erstes Argument: $1" echo "Zweites Argument: $2" echo "Anzahl der Argumente: $#" echo "Alle Argumente (einzeln): $@" echo "Alle Argumente (als Zeichenkette): $*"
bash mein_skript.sh Hallo Welt
Skriptname: mein_skript.sh # Name des Skripts ($0) Erstes Argument: Hallo # Erstes Argument ($1) Zweites Argument: Welt # Zweites Argument ($2) Anzahl der Argumente: 2 # Anzahl der Argumente ($#) Alle Argumente (einzeln): Hallo Welt # Alle Argumente ($@) Alle Argumente (als Zeichenkette): Hallo Welt # Alle Argumente als eine Zeichenkette ($*)
Ausdruck | Bedeutung |
---|---|
$@ | Jedes Argument als separates Element. |
$* | Alle Argumente als eine einzige Zeichenkette. |
#!/bin/bash for arg in "$@"; do echo "Argument (mit \$@): $arg" done for arg in "$*"; do echo "Argument (mit \$*): $arg" done
Ausführung mit:
bash mein_skript.sh "Hallo Welt" Test
Ergebnis:
Argument (mit $@): Hallo Welt Argument (mit $@): Test Argument (mit $*): Hallo Welt Test
Mit diesen Tools können Sie Skripte schreiben, die flexibel auf Benutzer- oder Systemeingaben reagieren.