Next: Spezielle Probleme und Kommandos Up: Ablaufsteuerung Previous: exit-Kommando
Funktionen
-
Definition
func_name () { cmd_liste }
bzw.
func_name () { cmd_liste; } -
Aufruf
func_name [[ arg_1 [ arg_2 ... ]]
Die Werte von , usw. werden den Shell-Variablen 1, 2 usw. zugewiesen und können damit über $1, $2, usw. abgerufen werden. -
Rückkehr aus der Funktion
- bei Erreichen des letzten Kommandos
-
über das Kommando
return [ n]
Dabei liefert n den Exit-Status der Funktion. Falls n weggelassen wird, ergibt sich der Exit-Status der Funktion aus dem Exit-Status des zuletzt ausgeführten Kommandos.
-
Bemerkungen
- Funktionen existieren nur in der Shell, in der sie definiert wurden. Demzufolge bleiben Veränderungen (z.B. durch Argumentübergabe an die Funktion, d.h. Setzen der Variablen 1 usw. nach Beendigung der Funktion erhalten.
-
Funktionsdefinitionen können in .profile gespeichert werden bzw. in
einen File , welches später (oder in .profile) durch
. funcdef_file
ausgeführt wird. Auf diese Weise können Funktionen auch in Sub-Shells verfügbar gemacht werden (z.B. in einen Shell-Script). - Der Aufruf von Funktionen ist (interaktiv) am Terminal möglich.
- Funktionen sind schneller als Shell-Scripts, da sie intern gespeichert werden.
-
Beispiel
# # mcd <verzeichnis> --> Wechseln in <verzeichnis> # # mcd - --> ins vorherige Verzeichnis # mcd () { AKTDIR=`pwd` if [ "$1" = "-" ] then /bin/echo -n $ALTDIR -- cd $ALTDIR; else /bin/echo -n $1 -- cd "$1"; fi ALTDIR=$AKTDIR }
Next: Spezielle Probleme und Kommandos Up: Ablaufsteuerung Previous: exit-Kommando