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.

94 2 <strong>UNIX</strong><br />

done<br />

fi<br />

if [ p[i]*p[i] -le z ]<br />

then<br />

i=i+1<br />

else<br />

p[n]=z; n=n+1<br />

z=z+2<br />

i=1<br />

fi<br />

i=0 # Ausgabe des Arrays<br />

while [ i -lt n ]<br />

do<br />

pr<strong>in</strong>t ${p[i]}<br />

i=i+1<br />

done<br />

pr<strong>in</strong>t Anzahl: $n<br />

Programm 2.12 : Shellscript zur Berechnung von Primzahlen<br />

E<strong>in</strong>e geschachtelte Verzweigung wie <strong>in</strong> obigem Shellscript darf auch<br />

kürzer mit if - then - elif - then - else - fi geschrieben werden.<br />

Man gew<strong>in</strong>nt jedoch nicht viel damit.<br />

Die for-Schleife hat <strong>in</strong> Shellscripts e<strong>in</strong>e andere Bedeutung als <strong>in</strong> C. Im<br />

folgenden Shellskript ist sie so aufzufassen: für die Argumente <strong>in</strong> dem Positionsparameter<br />

$* (der Name user ist beliebig) führe der Reihe nach die<br />

Kommandos zwischen do und done aus.<br />

# Shellscript filecount zum Zaehlen der Files e<strong>in</strong>es Users<br />

for user <strong>in</strong> $*<br />

do<br />

pr<strong>in</strong>t $user ‘f<strong>in</strong>d /mnt -user $user -pr<strong>in</strong>t | wc -l‘<br />

done<br />

Programm 2.13 : Shellscript zum Zählen der Files e<strong>in</strong>es Benutzers<br />

Es gibt weiterh<strong>in</strong> die while-Schleife mit while - do - done, die der<br />

gleichnamigen Schleife <strong>in</strong> anderen Programmiersprachen entspricht. Auf<br />

while folgt e<strong>in</strong>e Liste von Kommandos, deren Ergebnis entweder true oder<br />

false ist (also nicht e<strong>in</strong> logischer Ausdruck wie <strong>in</strong> den Programmiersprachen).<br />

true(1) ist hier ke<strong>in</strong> logischer oder boolescher Wert, sondern e<strong>in</strong> externes<br />

<strong>UNIX</strong>-Kommando, das e<strong>in</strong>e Null (= true) zurückliefert (entsprechend<br />

auch false(1)):<br />

# Shellscript mit Funktion zum Fragen, 21.05.1992<br />

# nach Bolsky + Korn, S. 183, 191<br />

# Funktion frage

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!