Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Linux Shell-Skripte / Schleifen

Schleifen

Kategorie: Linux Shell-SkripteErstellt: 02.10.2007 - 23:58 Geändert: 30.11.2007 - 10:55
Autor: Stefan Abu Salah
0Beim Programmieren von Shellskripten wird man über kurz oder lang in die Situation kommen, Schleifen zu bnötigen. Diese Möglichkeit bietet die Shell natürlich. Im folgenden werden die wichtigsten Schleifen vorgestellt.

while


Die while Schleife verlangt nach einer Bedingung, solange diese Bedingung erfüllt ist wird die Schleife abgearbeitet. Auf die Bedingung folgt zwangsweise ein do und der Anweisungsblock. Das Ende des Schleifenblocks markiert man mit der Anweisung done.
Beispiel: Aufbau einer while-Schleife

while [ BEDINGUNG ]
do
ANWEISUNGEN
done

Beachten Sie, dass vor und nach den eckigen Klammern ein Leerzeichen stehen muss


Endlosschleifen können auf unterschiedliche arten definiert werden. Man muss ausschließlich dafür sorgen dass die Bedingung immer ein TRUE zurückgibt. Dies ist beispielsweise dann der Fall wenn man als Bedingung einfach ein "true" oder eine "1" oder einfach einen Doppelpunkt angibt.


Beispiel: Enlosschleifen

while : ; do
ANWEISUNGEN
done


for


Eine weitere Möglichkeit der Schleifenrealisierung bietet die for-Schleife. Hier wird einer Variablen nacheinander eine Liste von Parametern zugewiesen. Innerhalb der Schleife steht der jeweils aktuelle Wert der Variablen für die Verarbeitung zur Verfügung. Die Schleife wird solange abgearbeitet, bis die angegebene Liste keine Elemente mehr enthält.
Beispiel: Aufbau einer for-Schleife

for VARIABLE in WERT1 WERT2 WERT3 ...
do
ANWEISUNGEN
done

Beispiel: Einfache for-Schleife

for i in 1 2 3 4 5
do
echo $i
done

1
2
3
4
5


Das Tool seq (sequence) erzeugt einfache Zahlenreihen. Diese Reihen lassen sich mithilfe von Kommandosubstitution einfach für das Realisieren einer gewissen Anzahl von Schleifendurchläufen nutzen. seq erwartet als Übergabe mindestens einen Parameter. Dieser gibt an bis zu welchem Zahlenwert seq laufen soll. Es ist ausserdem möglich einen Start und einen Endwert anzugeben.

Beispiel: n Schleifendurchläufe

for i in `seq 5`
do
echo $i
done

1
2
3
4
5

Beispiel: n-m Schleifendurchläufe

for i in `seq 3 5`
do
echo $i
done

3
4
5


Beispiel: Einfache for-Schleife

for i in Harald Erwin Hugo
do
echo $i
done

Harald
Erwin
Hugo

Mit der for-Schleife kann man auf einfache Weise eine Datei verarbeiten. Hierfür gibt man als Parameterliste einfach eine Kommandosubstitution an, welche die Ausgabe der Datei veranlasst.


Beispiel: Dateiverarbeitung mittels Kommandosubstitution

stefan@troubadix/home/stefan$ cat mein.txt
Hugo
Harald
Heinz Egon



for i in `cat mein.txt`
do
echo $i
done

Hugo
Harald
Heinz
Egon


break


Mit dem Schlüsselwort break ist man jederzeit in der Lage eine Schleife abzubrechen. Wird innerhalb einer Schleife ein break ausgeführt, so bricht die Abarbeitung der Schleife ab und wird nach der Schleife fortgesetzt. Folgendes Beispiel zeigt das Prinzip:

Beispiel: Abbruch einer Schleife mit break

for i in 1 2 3 4 5
do
echo $i
if [ $i -eq 3 ]
then
break
fi
done

1
2
3


Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Linux Shell-Skripte / Schleifen
simplum