Definition und Aufruf: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
= Funktionen zur Strukturierung von Skripten – Definition und Aufruf = | = Funktionen zur Strukturierung von Skripten – Definition und Aufruf = | ||
*Funktionen in der Bash dienen dazu, Skripte besser zu strukturieren und wiederverwendbare Codeblöcke zu erstellen. | *Funktionen in der Bash dienen dazu, Skripte besser zu strukturieren und wiederverwendbare Codeblöcke zu erstellen. | ||
*Sie werden definiert, indem ein Name für die Funktion angegeben und anschließend die Befehle in geschweifte Klammern gesetzt werden. | *Sie werden definiert, indem ein Name für die Funktion angegeben und anschließend die Befehle in geschweifte Klammern gesetzt werden. | ||
*Befehle in Funktionen werden wie in normalen Skripten geschrieben und können mit den üblichen Shellmechanismen aufgerufen werden. | *Befehle in Funktionen werden wie in normalen Skripten geschrieben und können mit den üblichen Shellmechanismen aufgerufen werden. | ||
== Grundprinzip == | == Grundprinzip == | ||
* Eine Funktion wird einmal definiert und kann beliebig oft aufgerufen werden. | *Eine Funktion wird einmal definiert und kann beliebig oft aufgerufen werden. | ||
* Funktionen helfen, wiederkehrende Abläufe zu kapseln und den Code lesbarer zu gestalten. | *Funktionen helfen, wiederkehrende Abläufe zu kapseln und den Code lesbarer zu gestalten. | ||
* Funktionen können Parameter entgegennehmen, die wie Stellungsparameter $1, $2, … innerhalb der Funktion verwendet werden. | *Funktionen können Parameter entgegennehmen, die wie Stellungsparameter $1, $2, … innerhalb der Funktion verwendet werden. | ||
* Der Rücksprung erfolgt automatisch nach Ausführung des letzten Befehls der Funktion. | *Der Rücksprung erfolgt automatisch nach Ausführung des letzten Befehls der Funktion. | ||
== Syntax == | == Syntax == | ||
<syntaxhighlight lang=bash> | |||
FUNKTIONSNAME() { | |||
Befehle | |||
} | |||
Alternativ mit function-Keyword: | |||
function FUNKTIONSNAME { | |||
Befehle | |||
} | |||
</syntaxhighlight> | |||
== Beispiel – einfache Funktion == | == Beispiel – einfache Funktion == | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
| Zeile 27: | Zeile 28: | ||
greet | greet | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Beispiel – Funktion mit Parametern == | == Beispiel – Funktion mit Parametern == | ||
| Zeile 39: | Zeile 37: | ||
greet Maria | greet Maria | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Hinweise == | == Hinweise == | ||
* Funktionen können vor oder nach ihrem Aufruf im Skript stehen, da Bash beim Parsen alle Funktionen erkennt. | *Funktionen können vor oder nach ihrem Aufruf im Skript stehen, da Bash beim Parsen alle Funktionen erkennt. | ||
* Eine Funktion muss nicht zwingend einen Wert zurückgeben – sie kann ausschließlich Befehle ausführen. | *Eine Funktion muss nicht zwingend einen Wert zurückgeben – sie kann ausschließlich Befehle ausführen. | ||
* Parameterübergabe erfolgt über $1, $2, … innerhalb der Funktion. | *Parameterübergabe erfolgt über $1, $2, … innerhalb der Funktion. | ||
* Interne Funktionen können überladen werden, d. h. eine bestehende Funktion kann durch eine neue Definition ersetzt werden. | *Interne Funktionen können überladen werden, d. h. eine bestehende Funktion kann durch eine neue Definition ersetzt werden. | ||
* Befehle innerhalb von Funktionen werden wie normale Kommandos behandelt | *Befehle innerhalb von Funktionen werden wie normale Kommandos behandelt. | ||
* Funktionen können durch ./skript oder bash skript.sh aufgerufen werden, je nachdem, wie das Skript ausgeführt wird. | *Funktionen können durch ./skript oder bash skript.sh aufgerufen werden, je nachdem, wie das Skript ausgeführt wird. | ||
= Aufgaben = | |||
*Erstellen Sie eine Funktion `begruesse`, die einen Namen als Parameter übernimmt und "Hallo <Name>" ausgibt. | |||
*Rufen Sie die Funktion mehrfach mit unterschiedlichen Namen auf und überprüfen Sie die Ausgabe. | |||
Aktuelle Version vom 17. Oktober 2025, 16:34 Uhr
Funktionen zur Strukturierung von Skripten – Definition und Aufruf
- Funktionen in der Bash dienen dazu, Skripte besser zu strukturieren und wiederverwendbare Codeblöcke zu erstellen.
- Sie werden definiert, indem ein Name für die Funktion angegeben und anschließend die Befehle in geschweifte Klammern gesetzt werden.
- Befehle in Funktionen werden wie in normalen Skripten geschrieben und können mit den üblichen Shellmechanismen aufgerufen werden.
Grundprinzip
- Eine Funktion wird einmal definiert und kann beliebig oft aufgerufen werden.
- Funktionen helfen, wiederkehrende Abläufe zu kapseln und den Code lesbarer zu gestalten.
- Funktionen können Parameter entgegennehmen, die wie Stellungsparameter $1, $2, … innerhalb der Funktion verwendet werden.
- Der Rücksprung erfolgt automatisch nach Ausführung des letzten Befehls der Funktion.
Syntax
FUNKTIONSNAME() {
Befehle
}
Alternativ mit function-Keyword:
function FUNKTIONSNAME {
Befehle
}
Beispiel – einfache Funktion
greet() {
echo "Hallo Welt"
}
greet
Beispiel – Funktion mit Parametern
greet() {
echo "Hallo $1"
}
greet Thomas
greet Maria
Hinweise
- Funktionen können vor oder nach ihrem Aufruf im Skript stehen, da Bash beim Parsen alle Funktionen erkennt.
- Eine Funktion muss nicht zwingend einen Wert zurückgeben – sie kann ausschließlich Befehle ausführen.
- Parameterübergabe erfolgt über $1, $2, … innerhalb der Funktion.
- Interne Funktionen können überladen werden, d. h. eine bestehende Funktion kann durch eine neue Definition ersetzt werden.
- Befehle innerhalb von Funktionen werden wie normale Kommandos behandelt.
- Funktionen können durch ./skript oder bash skript.sh aufgerufen werden, je nachdem, wie das Skript ausgeführt wird.
Aufgaben
- Erstellen Sie eine Funktion `begruesse`, die einen Namen als Parameter übernimmt und "Hallo <Name>" ausgibt.
- Rufen Sie die Funktion mehrfach mit unterschiedlichen Namen auf und überprüfen Sie die Ausgabe.