Vorzeitiger Abbruch: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „= Kontrollbefehle in Schleifen und Skripten (break, continue, exit) = *Die Bash stellt spezielle Steuerbefehle bereit, um den Ablauf von Schleifen oder ganzen…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
= Kontrollbefehle in Schleifen und Skripten (break, continue, exit) = | = Kontrollbefehle in Schleifen und Skripten (break, continue, exit) = | ||
*Die Bash stellt spezielle Steuerbefehle bereit, um den Ablauf von Schleifen oder ganzen Skripten gezielt zu beeinflussen. | *Die Bash stellt spezielle Steuerbefehle bereit, um den Ablauf von Schleifen oder ganzen Skripten gezielt zu beeinflussen. | ||
*Dazu gehören insbesondere die Kommandos '''break''', '''continue''' und '''exit'''. | *Dazu gehören insbesondere die Kommandos '''break''', '''continue''' und '''exit'''. | ||
== break == | == break == | ||
*Mit '''break''' wird die aktuelle Schleife sofort beendet, auch wenn die Abbruchbedingung noch nicht erfüllt ist. | *Mit '''break''' wird die aktuelle Schleife sofort beendet, auch wenn die Abbruchbedingung noch nicht erfüllt ist. | ||
*Nach dem Abbruch setzt das Skript mit der nächsten Anweisung nach der Schleife fort. | *Nach dem Abbruch setzt das Skript mit der nächsten Anweisung nach der Schleife fort. | ||
;Beispiel – Schleife abbrechen bei bestimmtem Wert | ;Beispiel – Schleife abbrechen bei bestimmtem Wert | ||
| Zeile 33: | Zeile 33: | ||
Schleife beendet. | Schleife beendet. | ||
*Mit einem numerischen Argument kann '''break''' mehrere Ebenen verschachtelter Schleifen gleichzeitig verlassen. | *Mit einem numerischen Argument kann '''break''' mehrere Ebenen verschachtelter Schleifen gleichzeitig verlassen. | ||
;Beispiel – zweifach verschachtelt | ;Beispiel – zweifach verschachtelt | ||
| Zeile 52: | Zeile 52: | ||
== continue == | == continue == | ||
*Mit '''continue''' wird der aktuelle Schleifendurchlauf sofort beendet. | *Mit '''continue''' wird der aktuelle Schleifendurchlauf sofort beendet. | ||
*Die Schleife selbst läuft weiter – der nächste Durchlauf beginnt sofort. | *Die Schleife selbst läuft weiter – der nächste Durchlauf beginnt sofort. | ||
;Beispiel – bestimmte Werte überspringen | ;Beispiel – bestimmte Werte überspringen | ||
| Zeile 78: | Zeile 78: | ||
== exit == | == exit == | ||
*Der Befehl '''exit''' beendet das gesamte Skript (nicht nur eine Schleife). | *Der Befehl '''exit''' beendet das gesamte Skript (nicht nur eine Schleife). | ||
*Dabei kann ein Exit-Status angegeben werden, der an den aufrufenden Prozess zurückgegeben wird. | *Dabei kann ein Exit-Status angegeben werden, der an den aufrufenden Prozess zurückgegeben wird. | ||
*Ein Exit-Status von 0 bedeutet Erfolg, ein anderer Wert signalisiert Fehler. | *Ein Exit-Status von 0 bedeutet Erfolg, ein anderer Wert signalisiert Fehler. | ||
;Beispiel – Skript mit Exit-Status | ;Beispiel – Skript mit Exit-Status | ||
| Zeile 95: | Zeile 95: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
*Der Rückgabewert eines beendeten Skripts kann in der Shell mit folgendem Befehl geprüft werden: | *Der Rückgabewert eines beendeten Skripts kann in der Shell mit folgendem Befehl geprüft werden: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Zeile 113: | Zeile 113: | ||
== Aufgaben == | == Aufgaben == | ||
* Schreiben Sie eine | * Schreiben Sie eine Schleife, die alle Dateien in /var/log durchgeht und beim ersten Treffer größer als 1 MB mit '''break''' beendet. | ||
* | * Erstellen Sie eine Schleife, die Zahlen von 1 bis 12 prüft und alle durch 3 teilbaren Werte mit '''continue''' überspringt. | ||
* | * Schreiben Sie ein Skript, das prüft, ob der Prozess sshd läuft und bei Nichterreichen von drei erfolgreichen Prüfungen in Folge mit '''exit 2''' abbricht. | ||
* | * Erstellen Sie eine verschachtelte Schleifenstruktur, die bei einer bestimmten Kombination (z. B. 3 und B) beide Ebenen mit '''break 2''' verlässt. | ||
Aktuelle Version vom 25. November 2025, 15:49 Uhr
Kontrollbefehle in Schleifen und Skripten (break, continue, exit)
- Die Bash stellt spezielle Steuerbefehle bereit, um den Ablauf von Schleifen oder ganzen Skripten gezielt zu beeinflussen.
- Dazu gehören insbesondere die Kommandos break, continue und exit.
break
- Mit break wird die aktuelle Schleife sofort beendet, auch wenn die Abbruchbedingung noch nicht erfüllt ist.
- Nach dem Abbruch setzt das Skript mit der nächsten Anweisung nach der Schleife fort.
- Beispiel – Schleife abbrechen bei bestimmtem Wert
ZAHL=1
while [ $ZAHL -le 10 ]
do
echo "Zahl: $ZAHL"
if [ $ZAHL -eq 5 ]
then
echo "Abbruch bei $ZAHL"
break
fi
ZAHL=$((ZAHL+1))
done
echo "Schleife beendet."
Ausgabe: Zahl: 1 Zahl: 2 Zahl: 3 Zahl: 4 Zahl: 5 Abbruch bei 5 Schleife beendet.
- Mit einem numerischen Argument kann break mehrere Ebenen verschachtelter Schleifen gleichzeitig verlassen.
- Beispiel – zweifach verschachtelt
for a in 1 2 3
do
for b in A B C
do
echo "$a$b"
if [ "$a$b" = "2B" ]
then
break 2
fi
done
done
echo "Abbruch nach 2B"
continue
- Mit continue wird der aktuelle Schleifendurchlauf sofort beendet.
- Die Schleife selbst läuft weiter – der nächste Durchlauf beginnt sofort.
- Beispiel – bestimmte Werte überspringen
for i in $(seq 1 7)
do
if [ $i -eq 4 ]
then
echo "Überspringe $i"
continue
fi
echo "Wert: $i"
done
Ausgabe: Wert: 1 Wert: 2 Wert: 3 Überspringe 4 Wert: 5 Wert: 6 Wert: 7
exit
- Der Befehl exit beendet das gesamte Skript (nicht nur eine Schleife).
- Dabei kann ein Exit-Status angegeben werden, der an den aufrufenden Prozess zurückgegeben wird.
- Ein Exit-Status von 0 bedeutet Erfolg, ein anderer Wert signalisiert Fehler.
- Beispiel – Skript mit Exit-Status
#!/bin/bash
echo "Starte Überprüfung..."
if [ ! -d /etc ]
then
echo "/etc existiert nicht!"
exit 1
fi
echo "Überprüfung abgeschlossen."
exit 0
- Der Rückgabewert eines beendeten Skripts kann in der Shell mit folgendem Befehl geprüft werden:
echo $?
Zusammenfassung
| Befehl | Wirkung | Bereich |
|---|---|---|
| break | Beendet Schleife sofort | Schleifenebene |
| continue | Überspringt aktuellen Durchlauf | Schleifenebene |
| exit | Beendet gesamtes Skript | Prozess/Skript |
Aufgaben
- Schreiben Sie eine Schleife, die alle Dateien in /var/log durchgeht und beim ersten Treffer größer als 1 MB mit break beendet.
- Erstellen Sie eine Schleife, die Zahlen von 1 bis 12 prüft und alle durch 3 teilbaren Werte mit continue überspringt.
- Schreiben Sie ein Skript, das prüft, ob der Prozess sshd läuft und bei Nichterreichen von drei erfolgreichen Prüfungen in Folge mit exit 2 abbricht.
- Erstellen Sie eine verschachtelte Schleifenstruktur, die bei einer bestimmten Kombination (z. B. 3 und B) beide Ebenen mit break 2 verlässt.