Den Exit-Code einer Funktion dürfen Sie selbst definieren. Planen Sie, dass das Skript weiterarbeitet, erreichen Sie das mittels return Exit-Code. Soll das Skript hingegen komplett abbrechen, etwa weil die Quelle an Argumenten erschöpft ist, verwenden Sie exit Exit-Code.
Eine Funktion besteht aus dem einleitenden Namen, einer folgenden leeren Klammer () und dem Körper der Funktion, den Sie mit geschweiften Klammern umschließen (Listing 16, erste Definition). Die leere Klammer entfällt, wenn Sie die Funktion mit dem Schlüsselwort function einleiten – das gilt aber nur für die Bash (Listing 16, zweite Definition).
Listing 16
#!/bin/bash
# Funktionsdefinition
hallo () {
echo "Hallo"
return 0
}
# alternative Funktionsdefinition
function hallo2 {
echo "Hallo Hallo"
return 0
}
# Aufruf der Funktionen
hallo
hallo2
Benötigen Sie eine Funktion im laufenden Skript nicht mehr, etwa, weil es nicht mehr sinnvoll ist, sie aufzurufen, so verfahren Sie mit ihr wie mit einer zu überflüssigen Variablen und löschen sie mit unset Funktion.
Global vs. lokal
In der Bash definieren Sie Variablen global (für das gesamte Skript) oder lokal (nur für innerhalb der Funktion). Für Letzteres setzen Sie das Schlüsselwort local vor die Definition der Variablen (Listing 17).
Listing 17
#!/bin/bash
# Variablendefinition
a="Wert1"
b="Wert2"
echo "Ausgangsdefinition:"
echo " " $a
echo " " $b
echo " "
function hallo {
a="Neuer Wert a"
local b="Neuer Wert b"
echo "In der Funktion:"
echo " " $a
echo " " $b
echo " "
return 0
}
hallo
echo "Nach Funktionsausführung:"
echo " " $a
echo " " $b
echo " "
Fazit
Mithilfe von Fallunterscheidungen programmieren Sie schnell und einfach Menüs für Ihre Software. Welches Konstrukt dabei das optimale ist, unterscheidet in der Regel den konkreten Anwendungsfall.
Funktionen helfen Ihnen, Teile des Codes in einfache Blöcke zu strukturieren, die Sie im gesamten Skript einsetzen dürfen. Das fördert die Übersichtlichkeit und Wartbarkeit, da es etwa das Austauschen eines Parameters drastisch vereinfacht.
Der Autor
Harald Zisler beschäftigt sich seit den frühen 90er-Jahren mit FreeBSD und Linux. Zu Technik- und EDV-Themen verfasst er Bücher und Beiträge für Zeitschriften. Aktuell hat er die vierte Auflage von “Computer-Netzwerke” veröffentlicht, erschienen beim Rheinwerk Verlag.
Infos
- Shell-Workshop, Teil 1: Harald Zisler, “Solides Fundament”, RPG 03-04/2017, S. 12, http://www.raspi-geek.de/38327





