Menu
Coddy logo textTech

While-Schleife

Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 72 von 82.

Die for-Schleife ist großartig, wenn Sie genau wissen, welche Elemente Sie durchlaufen möchten. Aber was, wenn Sie so lange schleifen möchten, bis sich eine bestimmte Bedingung ändert? Hier kommt die while-Schleife ins Spiel.

Eine while-Schleife läuft weiter, solange ihre Bedingung wahr bleibt. Hier ist die grundlegende Struktur:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Dieses Skript gibt die Zahlen von 1 bis 5 aus.

Die Schleife prüft, ob count kleiner oder gleich 5 ist. Wenn ja, führt sie den Rumpf aus, inkrementiert den Zähler mit $((...)) für Arithmetik und prüft erneut.

Sobald count 6 erreicht, wird die Bedingung falsch und die Schleife stoppt.

While-Schleifen sind perfekt, wenn du im Voraus nicht weißt, wie viele Iterationen du benötigst. Zum Beispiel könntest du weiterhin nach Eingaben fragen, bis der Benutzer „quit“ eingibt:

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Seien Sie vorsichtig mit while-Schleifen. Wenn die Bedingung nie falsch wird, läuft Ihre Schleife endlos.

Stellen Sie immer sicher, dass etwas innerhalb der Schleife die Bedingung schließlich ändert, wie das Inkrementieren eines Zählers oder das Aktualisieren einer Variable basierend auf Benutzereingaben.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Shell-Skript namens counter.sh, das eine while-Schleife verwendet, um Zahlen von 1 bis 4 auszugeben.

Ihr Skript sollte:

  1. Mit der Shebang-Zeile beginnen (#!/bin/bash)
  2. Eine Variable namens num mit dem Anfangswert 1 erstellen
  3. Eine while-Schleife verwenden, die so lange läuft, wie num kleiner oder gleich 4 ist
  4. Innerhalb der Schleife die aktuelle Zahl im Format ausgeben: Number: [num]
  5. num nach jeder Iteration um 1 erhöhen mit $((num + 1))

Machen Sie das Skript ausführbar und führen Sie es aus. Ihre Ausgabe sollte sein:

Number: 1
Number: 2
Number: 3
Number: 4

Hinweis: Verwenden Sie -le für den „kleiner oder gleich“-Vergleich. Denken Sie daran, den Zähler innerhalb der Schleife mit num=$((num + 1)) zu inkrementieren, um eine Endlosschleife zu vermeiden. Beenden Sie Ihre while-Schleife mit done.

Spickzettel

Eine while-Schleife läuft weiter, solange ihre Bedingung wahr bleibt:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Die Schleife überprüft die Bedingung vor jeder Iteration. Verwenden Sie $((...)) für arithmetische Operationen, um Zähler zu inkrementieren.

While-Schleifen sind nützlich, wenn Sie im Voraus nicht wissen, wie viele Iterationen Sie benötigen, z. B. beim Warten auf spezifische Benutzereingaben:

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Stellen Sie immer sicher, dass etwas innerhalb der Schleife die Bedingung schließlich ändert, um unendliche Schleifen zu vermeiden.

Probier es selbst

Terminal
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen