Shell-Funktion: Unterschied zwischen den Versionen
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...) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Eine <b>Shell-Funktion</b> verhält sich wie eine [[Funktion]] in anderen [[Programmiersprache]]n auch. Sie besteht aus einem Funktionsnamen und einer Befehlsliste | Eine <b>Shell-Funktion</b> verhält sich wie eine [[Funktion]] in anderen [[Programmiersprache]]n auch. Sie besteht aus einem Funktionsnamen und einer Befehlsliste. | ||
Bei Verwendung von "Funktionsname" im weiteren Verlauf | == Syntax == | ||
Bei Verwendung von "Funktionsname" im weiteren Verlauf eines [[Shellskript]]s 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. | |||
<pre class=wiki> | <pre class=wiki> | ||
Funktionsname () | |||
{ | { | ||
Befehlsliste | |||
} | } | ||
</pre> | </pre> |
Aktuelle Version vom 1. Februar 2009, 17:29 Uhr
Eine Shell-Funktion verhält sich wie eine Funktion in anderen Programmiersprachen auch. Sie besteht aus einem Funktionsnamen und einer Befehlsliste.
Syntax
Bei Verwendung von "Funktionsname" im weiteren Verlauf eines 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.
Funktionsname () { Befehlsliste }
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; }