Vorzeitiger Abbruch

Aus Xinux Wiki
Version vom 17. Oktober 2025, 15:30 Uhr von Thomas.will (Diskussion | Beiträge) (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…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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 while-Schleife, die von 1 bis 10 zählt und bei 6 mit break abbricht.
  • Schreiben Sie eine for-Schleife, die alle Zahlen von 1–7 ausgibt, aber 3 und 5 mit continue überspringt.
  • Erstellen Sie ein Skript, das mit exit 1 endet, wenn ein bestimmtes Verzeichnis fehlt, sonst mit exit 0.
  • Erklären Sie, warum exit im Gegensatz zu break das gesamte Skript beendet.