For-Schleife
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 71 von 82.
Manchmal müssen Sie eine Aktion mehrere Male wiederholen. Anstatt denselben Befehl immer und immer wieder zu schreiben, können Sie eine for-Schleife verwenden, um durch eine Liste von Elementen zu iterieren und eine Aktion für jedes einzelne auszuführen.
Hier ist die grundlegende Struktur einer for-Schleife in Bash:
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneDieses Skript gibt eine Begrüßung für jeden Namen in der Liste aus. Die Variable name nimmt nacheinander jeden Wert an: zuerst "Alice", dann "Bob", dann "Charlie". Das Schlüsselwort do markiert den Beginn des Schleifenkörpers, und done beendet ihn.
For-Schleifen sind besonders mächtig, wenn sie mit Wildcards kombiniert werden. Sie können durch alle Dateien in einem Verzeichnis iterieren:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneDies iteriert durch jede .txt-Datei im aktuellen Verzeichnis. Bei jeder Iteration enthält die Variable file den aktuellen Dateinamen, sodass Sie automatisch Operationen für jede Datei ausführen können.
Sie können auch mithilfe der geschweiften Klammern (Brace Expansion) über einen Zahlenbereich iterieren:
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneDies gibt die Zahlen 1 bis 5 aus. For-Schleifen verwandeln wiederkehrende Aufgaben in nur wenige Zeilen Code, wodurch Ihre Skripte effizienter und leichter zu warten sind.
Aufgabe
EinfachErstelle ein Shell-Skript namens countdown.sh, das eine For-Schleife verwendet, um einen Countdown von 5 bis 1 auszugeben.
Dein Skript sollte:
- Mit der Shebang-Zeile (
#!/bin/bash) beginnen - Eine For-Schleife mit geschweiften Klammern (Brace Expansion) verwenden, um die Zahlen von 5 bis 1 zu durchlaufen
- Jede Zahl in einer eigenen Zeile im Format
Countdown: [number]ausgeben
Mache das Skript ausführbar und führe es aus. Deine Ausgabe sollte wie folgt aussehen:
Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1Hinweis: Verwende
{5..1}, um einen absteigenden Bereich zu erstellen. Verwende innerhalb der Schleifeecho "Countdown: $i", wobeiideine Schleifenvariable ist.
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Verzeichnisse
Ein Verzeichnis erstellenEin Verzeichnis kopierenEin Verzeichnis verschieben und umbenennenEin Verzeichnis löschenZusammenfassung - Verzeichnisoperationen7Dateiinhalt
Head und TailWortanzahlSort-BefehlUniq-BefehlGrep GrundlagenGrep mit FlagsZusammenfassung - Textdetektiv10Log-Analyzer-Projekt
ProjektübersichtAnzeigen der Logdatei13Grundlagen der Shell-Skripte
Was ist ein Shell-SkriptEin Skript erstellen und ausführenVariablen in SkriptenBenutzereingabe in SkriptenIf-AnweisungFor-SchleifeWhile-SchleifeZusammenfassung - Zahlenraten2Navigation
Arbeitsverzeichnis anzeigenDateien auflistenVerzeichnis wechselnAbsolute vs. relative PfadeHome- und Root-VerzeichnisZusammenfassung - Den Weg finden8Umleitung
StandardausgabeIn eine Datei überschreibenAn eine Datei anhängenStandardeingabeStandardfehlerausgabeZusammenfassung – Log-Builder3Dateien
Eine Datei erstellenEine Datei lesenEine Datei kopierenEine Datei verschieben und umbenennenEine Datei löschenZusammenfassung - Dateioperationen6Wildcards und Muster
Die Sternchen-WildcardDie Fragezeichen-WildcardKlammer-WildcardsWildcards kombinierenZusammenfassung - Selektive Operationen9Pipes
Was ist eine PipeVerkettung zweier BefehleVerkettung mehrerer BefehlePipe mit GrepZusammenfassung - Daten-Pipeline