Bash:
Code in Funktionen organisieren

Wie geht das:

Erstelle eine einfache Funktion in Bash:

gruesse() {
  echo "Hallo, $1!"
}

Verwende sie, indem du die Funktion mit einem Parameter aufrufst:

gruesse "Welt"  # Ausgabe: Hallo, Welt!

Funktionen können Werte zurückgeben, indem sie return für numerische Statuscodes verwenden (nicht für die eigentliche Datenrückgabe):

addiere() {
  return $(($1 + $2))
}

addiere 3 4
echo $?  # Ausgabe: 7

Beachte, dass $? den Rückgabewert des letzten Befehls einfängt, der das numerische Ergebnis von addiere ist.

Vertiefung

In Bash sind Funktionen seit den frühen Versionen ein Mittel zur Kompartimentierung von Code. Historisch gesehen entspricht die Verwendung von Funktionen den Prinzipien der strukturierten Programmierung, die in den 1960er Jahren eingeführt wurden, um die Codequalität zu verbessern.

Alternativen zu Funktionen umfassen das Einbinden von Skriptdateien oder die Verwendung von Aliases, aber diese bieten nicht dasselbe Maß an Modularität und Wiederverwendbarkeit.

Ein bemerkenswertes Implementierungsdetail in Bash ist, dass Funktionen Bürger erster Klasse sind; sie haben kein spezifisches Deklarations-Schlüsselwort wie function in anderen Sprachen, obwohl function in Bash optional für die Lesbarkeit ist. Auch der Geltungsbereich von Funktionen ist interessant – Variablen sind standardmäßig global, es sei denn, sie werden als lokal deklariert, was zu unerwartetem Verhalten führen kann, wenn es nicht ordnungsgemäß verwaltet wird.

Siehe auch