LU05c - Parameter und Argumente
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.
Parameter
Ein Parameter ist ein Platzhalter, der mit einem Wert (Argument) gefüllt wird. Parameter können positionsbasiert oder speziell sein:
Positionsparameter
- Positionsparameter sind Parameter, die durch $0, $1, $2, … referenziert werden.
- $0: Der Name des aufgerufenen Skripts.
- $1, $2, …: Die übergebenen Argumente in der Reihenfolge ihrer Position.
Besondere Parameter
$#: 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
Argumente sind die tatsächlichen Werte, die beim Aufruf eines Skripts oder einer Funktion an die Parameter übergeben werden.
Beispiel:
bash mein_skript.sh Hallo Welt
- Hier ist mein_skript.sh der Skriptname ($0).
- Hallo ist das erste Argument ($1).
- Welt ist das zweite Argument ($2).
Beispiel für Parameter und Argumente
#!/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): $*"
Ausführung
bash mein_skript.sh Hallo Welt
Erklärung der Ausgabe
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 ($*)
Unterschiede zwischen $@ und $*
Ausdruck | Bedeutung |
---|---|
$@ | Jedes Argument als separates Element. |
$* | Alle Argumente als eine einzige Zeichenkette. |
Beispiel zur Verdeutlichung:
#!/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
Zusammenfassung
- Parameter: Platzhalter in einem Skript oder einer Funktion ($1, $2, etc.).
- Argumente: Werte, die beim Aufruf übergeben werden.
- Besondere Parameter wie $@ und $# bieten zusätzliche Kontrolle und Flexibilität.
Mit diesen Tools können Sie Skripte schreiben, die flexibel auf Benutzer- oder Systemeingaben reagieren.