24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

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.

2.5 Shells 103<br />

foreach $item (keys(%anzahl)) {<br />

pr<strong>in</strong>t("$item: $anzahl{$item}\n");<br />

}<br />

Programm 2.19 : Perlscript zur Ermittlung der Anzahl der Bücher usw. <strong>in</strong><br />

e<strong>in</strong>em Katalog<br />

In der ersten ausführbaren Zeile wird e<strong>in</strong> assoziatives Array namens<br />

%anzahl mit drei Elementen def<strong>in</strong>iert und <strong>in</strong>itialisiert. Die äußere while-<br />

Schleife liest Zeilen von std<strong>in</strong>, per Umlenkung mit dem Katalog verbunden.<br />

Die <strong>in</strong>nere while-Schleife zählt das jeweilige Element des Arrays um 1 hoch,<br />

jedesmal wenn <strong>in</strong> der aktuellen Zeile e<strong>in</strong> Substr<strong>in</strong>g ”BUC” oder ”ZEI” oder<br />

”DIP” gefunden wird. Die Perl-Variable $& enthält den gefundenen Substr<strong>in</strong>g<br />

und wird deshalb als Index ausgenutzt. Die foreach-Schleife zur Ausgabe<br />

gleicht der gleichnamigen Schleife der C-Shell oder der for-Schleife der<br />

Bourne-Shell.<br />

Was man mit Shell- oder Perlscripts macht, läßt sich auch mit Programmen<br />

– vorzugsweise <strong>in</strong> C/C++ – erreichen. Was ist besser? E<strong>in</strong> Script ist<br />

schnell geschrieben oder geändert, braucht nicht kompiliert zu werden (weil<br />

es <strong>in</strong>terpretiert wird), läuft aber langsamer als e<strong>in</strong> Programm. E<strong>in</strong> Script eignet<br />

sich daher für kle<strong>in</strong>e bis mittlere Aufgaben zur Textverarbeitung oder<br />

Systemverwaltung, wobei Perl mehr kann als e<strong>in</strong>e Shell. Für umfangreiche<br />

Rechnungen oder falls die Laufzeit entscheidet, ist e<strong>in</strong> kompiliertes Programm<br />

besser. Oft schreibt man auch zunächst e<strong>in</strong> Script, probiert es e<strong>in</strong>e<br />

Zeitlang aus und ersetzt es dann durch e<strong>in</strong> Programm. Gelegentlich spielt die<br />

Portierbarkeit auf andere Betriebssysteme e<strong>in</strong>e Rolle. E<strong>in</strong> <strong>UNIX</strong>-Shellscript<br />

läuft nur auf Systemen, auf denen e<strong>in</strong>e <strong>UNIX</strong>-Shell verfügbar ist, Perl setzt<br />

den Perl-Interpreter voraus, e<strong>in</strong> C-Programm läuft auf jedem System, für das<br />

e<strong>in</strong> C-Compiler zur Verfügung steht. Und schließlich hat man auch se<strong>in</strong>e Gewohnheiten.<br />

2.5.4 Memo Shells<br />

• Die Shell – e<strong>in</strong> umfangreiches Programm – ist der Gesprächspartner<br />

(<strong>in</strong>teraktiver Kommando<strong>in</strong>terpreter) <strong>in</strong> e<strong>in</strong>er Sitzung. Es gibt mehrere<br />

Shells zur Auswahl, die sich <strong>in</strong> E<strong>in</strong>zelheiten unterscheiden.<br />

• Die Shell faßt jede E<strong>in</strong>gabe als Kommando (<strong>in</strong>ternes Kommando oder<br />

externes Kommando = Shellscript oder Programm) auf.<br />

• Die Shell stellt für die Sitzung e<strong>in</strong>e Umgebung bereit, die e<strong>in</strong>e Reihe von<br />

Werten (Str<strong>in</strong>gs) enthält, die von Shellscripts und anderen Programmen<br />

benutzt werden.<br />

• Die Shell ist zweitens e<strong>in</strong> Interpreter für Shellscripts, e<strong>in</strong>e Art von Programmen,<br />

die nicht kompiliert werden. Shellscripts können alles außer<br />

Gleitkomma-Arithmetik.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!