Shell-Funktion

Aus Mikiwiki
Version vom 1. Februar 2009, 19:28 Uhr von Michi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Eine <b>Shell-Funktion</b> verhält sich wie eine Funktion in anderen Programmiersprachen auch. Sie besteht aus einem Funktionsnamen und einer Befehlsliste gem...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Eine Shell-Funktion verhält sich wie eine Funktion in anderen Programmiersprachen auch. Sie besteht aus einem Funktionsnamen und einer Befehlsliste gemäss folgender Syntax.

Bei Verwendung von "Funktionsname" im weiteren Verlauf des Shellskripts führt die Shell die "Befehlsliste" der Funktion "Funktionsname" aus. Innerhalb der Funktion kann mit "$1", "$2" usw. auf die Parameter zugegriffen werden. Die Anzahl der Parameter ist "$#". Die Variable "$0" enthält aber nicht den Funktionsnamen, sondern den Namen des Shellskripts. Im Gegensatz zu Shellskripts sind Shell-Funktionen immer lokal, werden also nicht exportiert, und sind daher in der Subshell nicht bekannt.

<i>Funktionsname</i> ()
{
  <i>Befehlsliste</i>
}

Verwendung

Definition einer Funktion in der Datei ".profile", die dann ähnlich wie ein Shell-Befehl benutzt werden kann.

# Bilden der Funktion "wo":
function wo
{
  find . -name $1
}

Definition einer Funktion, die alle Verzeichnisse im aktuellen Verzeichnis auflistet, wobei dem Befehl "ls" beliebige Argumente mitgegeben werden können.

$ lsd () { ls -l $* | grep ^d; }