Bash-Skripte lernen – Teil 3: Bedingungen und Schleifen

Aktualisiert am 01.11.2026 · Lesezeit ca. 4 Min. · Niveau: Anfänger · von Viktor Tribus, IT-Tribus Nideggen

Willkommen zum dritten Teil unserer Bash-Skript-Reihe. In Teil 2 haben wir uns mit Variablen und Parametern beschäftigt, jetzt greifen wir auf diese Kenntnisse zurück und erweitern unsere Skripte um Bedingungen und Schleifen. Dieser Teil wird Ihnen zeigen, wie Sie komplexe Logik in Ihre Bash-Skripte einbauen können.

Was Sie in diesem Beitrag lernen

  • Bedingte Anweisungen (if) erstellen.
  • Verschiedene Schleifenarten (for, while, until) verstehen und verwenden.
  • Schleife-Endbedingungen einrichten.

Geschätzte Zeit: 20 Minuten

Benötigte Werkzeuge:

  • Terminal oder Eingabeaufforderung (CMD).

Das Prinzip einfach erklärt

Stellen Sie sich vor, Sie möchten ein Skript erstellen, das eine bestimmte Aktion ausführt, wenn eine Bedingung erfüllt ist. Zum Beispiel, wenn es regnet, wollen Sie einen Schirm mitnehmen. In einem Bash-Skript funktionieren Bedingungen ähnlich: Wenn eine Bedingung zutrifft (z.B., ob eine Variable einen bestimmten Wert hat), dann wird ein Befehl ausgeführt.

Schleifen wiederholen Aktionen, bis eine bestimmte Bedingung erfüllt ist. Stellen Sie sich vor, Sie möchten alle Briefe aus einem Schuhkarton sortieren und in einem anderen Karton ablegen. Solange noch Briefe im ersten Karton sind, wiederholen Sie die Schritte (Schleife).

Ihr erstes Beispiel

Erstellen Sie eine neue Textdatei mit dem Namen bedingungsskript.sh und fügen Sie den folgenden Code ein:

Linux-Terminal (Bash)
#!/bin/bash
# Überprüfen, ob eine Variable einen bestimmten Wert hat
if [ "$VARIABLE" == "WERT" ]; then
  echo "Die Bedingung wurde erfüllt!"
fi

Öffnen Sie das Terminal und wechseln Sie zum Verzeichnis, in dem die Datei gespeichert ist. Geben Sie folgenden Befehl ein, um das Skript auszuführen:

Linux-Terminal (Bash)
chmod +x bedingungsskript.sh
./bedingungsskript.sh

Sie sehen auf dem Bildschirm eine leere Ausgabe. Das liegt daran, dass die Variable VARIABLE nicht definiert ist.

Schritt für Schritt erweitern

Nun erweitern wir das Skript in mehreren Stufen:

Stufe 1: Variablen definieren und verwenden

Linux-Terminal (Bash)
#!/bin/bash
# Definieren der Variable
VARIABLE="WERT"

if [ "$VARIABLE" == "WERT" ]; then
  echo "Die Bedingung wurde erfüllt!"
fi

Führen Sie das Skript aus und sehen Sie, dass die Ausgabe „Die Bedingung wurde erfüllt!“ erscheint.

Stufe 2: Mehrere Bedingungen abfragen

Linux-Terminal (Bash)
#!/bin/bash
VARIABLE1="WERT1"
VARIABLE2="WERT2"

if [ "$VARIABLE1" == "WERT1" ]; then
  echo "Die erste Bedingung wurde erfüllt!"
fi

if [ "$VARIABLE2" != "WERT3" ]; then
  echo "Die zweite Bedingung wurde ebenfalls erfüllt!"
fi

Führen Sie das Skript aus und sehen Sie, dass beide Bedingungen erfüllt sind.

Stufe 3: Schleifen verwenden (while)

Linux-Terminal (Bash)
#!/bin/bash
ZAHL=0

while [ $ZAHL -lt 5 ]; do
  echo "Die Zählerzahl ist: $ZAHL"
  ((ZAHL++))
done

Führen Sie das Skript aus und sehen Sie, dass die Zählung von 0 bis 4 erfolgt.

Stufe 4: Schleife mit if kombinieren

Linux-Terminal (Bash)
#!/bin/bash
ZAHL=0

while [ $ZAHL -lt 5 ]; do
  echo "Die Zählerzahl ist: $ZAHL"
  ((ZAHL++))

  if [ $ZAHL -eq 3 ]; then
    echo "Zwischenstopp bei der Zahl 3!"
  fi
done

Führen Sie das Skript aus und sehen Sie, dass die Ausgabe an der Stelle „Zwischenstopp bei der Zahl 3!“ unterbrochen wird.

Typische Anfängerfehler

Fehlermeldung: „command not found“

Ursache: Das Skript wurde ohne die Ausführungsrechte ausgeführt.

Lösung: Geben Sie chmod +x [SKRIPTNAME] ein, um das Skript ausführbar zu machen.

Fehlermeldung: „test: Argument list too long“

Ursache: Die Bedingungen sind zu komplex oder es gibt zu viele Variablen.

Lösung: Vereinfachen Sie die Bedingungen und überprüfen Sie, ob alle benötigten Variablen korrekt definiert sind.

Fehlermeldung: „unexpected EOF while looking for matching „'“

Ursache: Ein fehlendes Schlusszeichen oder eine unvollständige Anweisung.

Lösung: Überprüfen Sie den Code auf fehlende Schlusszeichen und korrigieren Sie eventuelle Syntaxfehler.

Übung für Sie

Erstellen Sie ein Skript, das die Zahlen von 1 bis 10 ausgibt. Wenn eine Zahl durch 3 teilbar ist, soll „Teilbar durch 3“ ausgegeben werden.

Lösungsvorschlag:

Linux-Terminal (Bash)
#!/bin/bash
ZAHL=1

while [ $ZAHL -le 10 ]; do
  echo "Die Zählerzahl ist: $ZAHL"
  
  if [ $(($ZAHL % 3)) -eq 0 ]; then
    echo "Teilbar durch 3!"
  fi
  
  ((ZAHL++))
done

Spickzettel

Befehl/Syntax Bedeutung Beispiel
if [Bedingung] Führt den Codeblock aus, wenn die Bedingung wahr ist.
Linux-Terminal (Bash)
if [ "$VARIABLE" == "WERT" ]; then echo "True"; fi
while [Bedingung] Führt den Codeblock wiederholt aus, solange die Bedingung wahr ist.
Linux-Terminal (Bash)
while [ $ZAHL -lt 5 ]; do echo "Zahl: $ZAHL"; ((ZAHL++)); done
for ((i=1; i<=n; i++)) Führt den Codeblock n Mal aus.
Linux-Terminal (Bash)
for ((i=1; i<=5; i++)); do echo "Zahl: $i"; done
until [Bedingung] Führt den Codeblock wiederholt aus, bis die Bedingung wahr ist.
Linux-Terminal (Bash)
ZAHL=0; until [ $ZAHL -gt 5 ]; do echo "Zahl: $ZAHL"; ((ZAHL++)); done
if [Bedingung1]; then … elif [Bedingung2]; then … fi Führt den Codeblock aus, wenn eine der Bedingungen wahr ist.
Linux-Terminal (Bash)
if [ "$VARIABLE" == "WERT1" ]; then echo "Erste Bedingung"; elif [ "$VARIABLE" == "WERT2" ]; then echo "Zweite Bedingung"; fi
[[ $VARIABLE =~ REGEX ]] Überprüft, ob eine Variable einen bestimmten regulären Ausdruck erfüllt.
Linux-Terminal (Bash)
if [[ "$STRING" =~ ^[0-9]+$ ]]; then echo "Nur Zahlen"; fi

Häufige Fragen

Was ist der Unterschied zwischen if und elif?

if überprüft die erste Bedingung, elif (else if) prüft weitere Bedingungen, falls die erste nicht erfüllt ist.

Kann ich mehrere Schleifen ineinander verschachteln?

Ja, das ist möglich. Verschachtelte Schleifen ermöglichen komplexe Iterationen und Verarbeitung von Datenstrukturen wie Matrizen.

Was passiert, wenn eine Bedingung nicht erfüllt ist?

Wenn die Bedingung in einem if-Block nicht erfüllt wird, springt das Skript zum nächsten Befehl nach dem fi.

Kann ich Schleifen ohne Bedingungen verwenden?

Nein, eine Schleife braucht immer eine Bedingung, um zu bestimmen, wann sie aufhören soll.

Fazit und nächster Schritt

In diesem Teil haben Sie gelernt, wie man Bedingungen und Schleifen in Bash-Skripten verwendet. Diese Grundlagen ermöglichen Ihnen nun, komplexe Logik in Skripte zu integrieren. Der nächste Schritt ist der Praxispart: Teil 4: Praxis: Backup-Skript mit Cron. Bei Fragen oder Unterstützung stehe IT-Tribus in Nideggen Ihnen gerne zur Verfügung.

Serie: Bash-Skripte lernen – Teil 3 von 4

← Vorheriger Teil: Bash-Skripte lernen – Teil 2: Variablen und Parameter

→ Als Nächstes: Teil 4: Praxis: Backup-Skript mit Cron (erscheint in Kürze)

Quellen und weiterführende Informationen

Hinweis: Dieser Beitrag wurde am 01.11.2026 mit KI-Unterstützung erstellt, auf Basis der genannten Quellen eigenständig formuliert und redaktionell von IT-Tribus betreut. Alle Angaben ohne Gewähr – bitte prüfen Sie Befehle vor dem Einsatz in produktiven Umgebungen und legen Sie vorher eine Sicherung an.

Benötigen Sie Unterstützung bei Bash if Schleifen?

IT-Tribus ist Ihr IT-Dienstleister aus Nideggen. Vor Ort helfen wir in Düren, im Kreis Düren und in der Region Aachen – Monitoring und Fernwartung mit NinjaOne bieten wir Unternehmen auch überregional an.

Kostenlose Erstanalyse anfordern
📞 02427 9099860