Werte-Rückgabe

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Funktionen – Werte-Rückgabe

  • Funktionen in Bash können Rückgabewerte liefern, die vom Aufrufer weiterverwendet werden können.
  • Es gibt zwei Arten der Rückgabe: der Exit-Status (0–255) über return und Werte über echo für die Weiterverarbeitung.

Rückgabewert mit return

  • Mit return N kann ein Wert zwischen 0 und 255 zurückgegeben werden.
  • Üblicherweise wird der Exit-Status 0 für Erfolg und ungleich 0 für Fehler verwendet.
  • Der Wert wird über $? nach dem Funktionsaufruf abgefragt.

Beispiel – return

#!/bin/bash
is_even() {
    if [ $(($1 % 2)) -eq 0 ]; then
        return 0
    else
        return 1
    fi
}

is_even 4
echo "Exit-Status für 4: $?"

is_even 5
echo "Exit-Status für 5: $?"
Ausgabe:
 Exit-Status für 4: 0
 Exit-Status für 5: 1

Werte über echo zurückgeben

  • Werte, die größer als 255 sind oder komplexere Daten, werden über echo zurückgegeben.
  • Der Aufrufer kann diese Ausgabe mit Kommando-Substitution erfassen.

Beispiel – echo

#!/bin/bash
square() {
    echo $(($1 * $1))
}

RESULT=$(square 5)
echo "Quadrat von 5 ist $RESULT"
Ausgabe:
 Quadrat von 5 ist 25

Hinweise

  • return eignet sich für Statusangaben (Erfolg/Fehler).
  • Für numerische Berechnungen, Strings oder Listen sollte echo in Kombination mit Kommando-Substitution verwendet werden.
  • Der Exit-Status einer Funktion kann zusätzlich mit $? geprüft werden, unabhängig von über echo zurückgegebenen Werten.

Aufgaben

  • Schreiben Sie eine Funktion is_positive die prüft, ob eine Zahl positiv ist, und geben Sie den Status mit return zurück.
  • Schreiben Sie eine Funktion cube die die dritte Potenz einer Zahl berechnet und den Wert über echo zurückgibt.
  • Erstellen Sie ein Skript, das eine Zahl eingibt, die Funktion cube aufruft und das Ergebnis in einer Variablen speichert und ausgibt.