09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

9.6 <strong>Die</strong> Shell als Programmiersprache 139<br />

done<br />

elif [ -f "$name" ]<br />

else<br />

fi<br />

echo $name: Datei<br />

echo $name: Keine Ahnung<br />

Wenn das Kommando nach dem if »Erfolg« meldet (Rückgabewert 0), werden<br />

die Kommandos nach then ausgeführt, bis zu einem elif, else oder fi. Liefert es<br />

hingegen »Misserfolg«, wird als nächstes testhalber das Kommando nach dem<br />

nächsten elif ausgeführt und <strong>des</strong>sen Rückgabewert betrachtet. <strong>Die</strong> Shell macht<br />

entsprechend weiter, bis das passende fi erreicht ist, wobei die Kommandos hinter<br />

dem else ausgeführt werden, wenn keines der if-Kommandos Erfolg vermelden<br />

konnte. <strong>Die</strong> elif- und else-Zweige dürfen wegfallen, wenn sie nicht gebraucht<br />

werden.<br />

Mehr Schleifen Bei der for-Schleife liegt die Anzahl der Schleifendurchläufe von<br />

Anfang an fest (die Anzahl der Wörter in der Liste). Oft bekommt man es aber<br />

mit Situationen zu tun, wo nicht a priori klar ist, wie oft eine Schleife durchlaufen<br />

werden soll. Hierfür bietet die Shell die while-Schleife an, die (ähnlich wie if) while<br />

ein Kommando ausführt, <strong>des</strong>sen Erfolg oder Misserfolg darüber entscheidet, wie<br />

mit der Schleife verfahren wird: Bei Erfolg werden die »abhängigen« Kommandos<br />

ausgeführt, bei Misserfolg wird nach der Schleife im Skript fortgefahren.<br />

Das folgende Skript liest eine auf der Kommandozeile übergebene Datei der<br />

Form<br />

Liebe Tante Frieda:frieda@example.net:den tollen Kaffeewärmer<br />

Lieber Onkel Hans:hans@example.com:den schönen Fußball<br />

✁✁✁✁✁<br />

und konstruiert aus jeder Zeile eine Dankes-E-Mail (<strong>Linux</strong> ist halt schon sehr nützlich<br />

fürs wirkliche Leben):<br />

#!/bin/bash<br />

# birthday FILE<br />

IFS=:<br />

while read anrede adresse geschenk<br />

do<br />

done

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!