Home · Kontakt · Impressum
contents index previous up next
Next: 15.2 Skripte Up: 15.1 Variablen, Aliase und Previous: 15.1.2 Aliase


15.1.3 Funktionen

Ergänzend zu den Aliase können Sie mit Funktionen neue Befehle definieren. Während Sie mit Aliase nur einfache Befehle definieren, sind Funktionen für komplexere Aufgaben, die normalerweise aus mehreren Befehlen bestehen, ausgelegt.

Die Syntax für die Erstellung einer Funktion lautet:

[function] NAME () { KOMMANDOLISTE; }

Diese Deklaration definiert eine Funktion NAME. Das Wort function ist nicht notwendig. Sollten Sie das Schlüsselwort weglassen, sind die runden Klammern nach dem Funktionsnamen Pflicht. In den geschweiften Klammern werden dann die Kommandos entweder durch Semikola oder durch das neue Zeile Zeichen getrennt.

ole@defiant:~> werda () { echo Du bist $USER; who; }
ole@defiant:~> werda
Du bist ole
ole      :0       Nov 20 10:03 (console)
ole      pts/0    Nov 20 10:04
tapico   pts/1    Nov 20 10:14
walter   pts/2    Nov 20 10:53

Wichtig ist es hier, daß Sie nicht das letzte Semikolon vergessen. Auch der letzte Befehl vor der schließenden geschweiften Klammer muß mit einem Semikolon beendet werden.

Das Schreiben der Befehle in einer Zeile ist bei längeren Befehlsfolgen etwas unpraktisch. Sie können anstatt eines Semikolon auch einen Zeilenumbruch machen, um die Kommandoliste einzugeben.

ole@defiant:~> function hallo () {
> echo Hallo $USER
> date +"Es ist %H:%M:%S Uhr"
> }
ole@defiant:~> hallo
Hallo ole
Es ist 11:49:26 Uhr

Bis jetzt wurden die Funktionen wie Aliase verwendet. Im Gegensatz zu diesen können Funktionen Parameter mitgegeben werden. Diese Parameter stehen dann in den Variablen $1, $2, $3 bis $N. Die Anzahl der übergebenden Parameter steht in der Variablen $#.

ole@defiant:~> function sagmal () {
> echo Es wurden $# Parameter eingegeben.
> echo Der erste Parameter lautet: $1
> }
ole@defiant:~> sagmal Hallo Welt
Es wurden 2 Parameter eingegeben.
Der erste Parameter lautet: Hallo
ole@defiant:~> sagmal "Hallo Welt"
Es wurden 1 Parameter eingegeben.
Der erste Parameter lautet: Hallo Welt

Sie können im Beispiel deutlich die Auswirkungen der Anführungszeichen sehen.

ole@defiant:~> function werist () {
> finger $1
> ps -aux | grep $1
> }
ole@defiant:~> werist root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Last login Wed Oct  9 08:13 (CEST) on tty1
New mail received Thu Oct 10 11:20 2002 (CEST)
     Unread since Fri May  3 18:15 2002 (CEST)
No Plan.
root         1  0.0  0.0   448   64 ?        S    08:14   0:04 init [5]
root         2  0.0  0.0     0    0 ?        SW   08:14   0:00 [keventd]
root         3  0.0  0.0     0    0 ?        SW   08:14   0:00 [kapmd]
root         4  0.0  0.0     0    0 ?        SWN  08:14   0:00 [ksoftirqd_CPU0]
root         5  0.0  0.0     0    0 ?        SW   08:14   0:00 [kswapd]
...


contents index previous up next
Next: 15.2 Skripte Up: 15.1 Variablen, Aliase und Previous: 15.1.2 Aliase
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang