Parameter-Übergabe
Zur Navigation springen
Zur Suche springen
Funktionen – Parameter-Übergabe
- Funktionen und Skripte in Bash können Parameter erhalten, die wie Variablen innerhalb der Funktion verfügbar sind.
- Die übergebenen Parameter werden über die Positionsvariablen $1, $2, …, $9, $* oder $@ angesprochen.
Grundprinzip
- Bei jedem Aufruf einer Funktion oder eines Skripts können Werte übergeben werden.
- Die Funktion/Skript verwendet $1 für den ersten Parameter, $2 für den zweiten usw.
- $* enthält alle übergebenen Parameter als einzelne Zeichenkette.
- $@ enthält alle übergebenen Parameter als separate Argumente, nützlich für Schleifen.
Syntax
- FUNKTIONSNAME PARAM1 PARAM2 ...
- ./skript.sh PARAM1 PARAM2 ...
Beispiel – Parameter an Funktion
#!/bin/bash
greet() {
echo "Hallo $1, willkommen!"
}
greet Thomas
greet Maria
Ausgabe: Hallo Thomas, willkommen! Hallo Maria, willkommen!
Beispiel – Mehrere Parameter
#!/bin/bash
sum_numbers() {
echo "Parameter 1: $1"
echo "Parameter 2: $2"
echo "Alle Parameter: $*"
}
sum_numbers 5 7
Ausgabe: Parameter 1: 5 Parameter 2: 7 Alle Parameter: 5 7
Beispiel – Übergabe an Skript
#!/bin/bash
echo "Skriptname: $0"
echo "1. Parameter: $1"
echo "2. Parameter: $2"
echo "Alle Parameter: $*"
Aufruf: ./mein_skript.sh rot blau
Ausgabe: Skriptname: ./mein_skript.sh 1. Parameter: rot 2. Parameter: blau Alle Parameter: rot blau
Hinweise
- Positionsparameter $1 bis $9 enthalten die ersten neun übergebenen Argumente.
- $* und $@ unterscheiden sich in der Handhabung in Anführungszeichen:
- "$*" → alle Parameter als eine Zeichenkette
- "$@" → jeden Parameter als separates Element
- Anzahl der übergebenen Parameter wird über $# ermittelt.
Aufgaben
- Erstellen Sie eine Funktion greet_user die den Namen und die Stadt als Parameter erhält und ausgibt: "Hallo NAME aus STADT".
- Schreiben Sie ein Skript summe.sh, das zwei Zahlen als Parameter erhält und ihre Summe ausgibt.
- Erstellen Sie ein Skript, das alle übergebenen Parameter nacheinander ausgibt und am Ende die Anzahl der Parameter angibt.