====== LU05c - Parameter und Argumente ======
{{https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_005_000.htm|Shell Prog: Kapitel 3.1 - 3.3}}
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.
----
{{tag>M122-LU05}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter