Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
modul:m122:learningunits:lu06:iteration [2024/11/18 07:47] – angelegt msuter | modul:m122:learningunits:lu06:iteration [2024/12/04 19:12] (aktuell) – msuter | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== LU06b - Einführung in Iterationen in Bash ====== | ====== LU06b - Einführung in Iterationen in Bash ====== | ||
+ | {{https:// | ||
Iterationen (Schleifen) in Bash ermöglichen es, wiederholt eine Gruppe von Befehlen auszuführen, | Iterationen (Schleifen) in Bash ermöglichen es, wiederholt eine Gruppe von Befehlen auszuführen, | ||
- | --- | ||
- | ### **1. `for`-Schleife** | + | ===== for-Schleife |
- | Die **`for`-Schleife** wird verwendet, um durch eine Liste von Werten oder Dateien zu iterieren. | + | Die **for-Schleife** wird verwendet, um durch eine Liste von Werten oder Dateien zu iterieren. |
- | #### **Grundstruktur: | + | ==== Grundstruktur: |
- | ```bash | + | < |
for variable in Liste; do | for variable in Liste; do | ||
# Befehle | # Befehle | ||
done | done | ||
- | ``` | + | </ |
- | #### **Beispiel:** | + | ==== Beispiel: |
- | ```bash | + | < |
#!/bin/bash | #!/bin/bash | ||
for name in Alice Bob Charlie; do | for name in Alice Bob Charlie; do | ||
echo " | echo " | ||
done | done | ||
- | ``` | + | </ |
**Ausgabe: | **Ausgabe: | ||
- | ``` | + | < |
Hallo, Alice! | Hallo, Alice! | ||
Hallo, Bob! | Hallo, Bob! | ||
Hallo, Charlie! | Hallo, Charlie! | ||
- | ``` | + | </ |
- | #### **`for`-Schleife für Dateien:** | + | ==== for-Schleife für Dateien: |
- | ```bash | + | < |
#!/bin/bash | #!/bin/bash | ||
for file in *.txt; do | for file in *.txt; do | ||
echo " | echo " | ||
done | done | ||
- | ``` | + | </ |
- | --- | + | ---- |
- | ### **2. `while`-Schleife** | + | ===== while-Schleife |
- | Die **`while`-Schleife** führt Befehle aus, solange eine Bedingung wahr ist. | + | Die **while-Schleife** führt Befehle aus, solange eine Bedingung wahr ist. |
- | #### **Grundstruktur: | + | === Grundstruktur: |
- | ```bash | + | < |
while [ Bedingung ]; do | while [ Bedingung ]; do | ||
# Befehle | # Befehle | ||
done | done | ||
- | ``` | + | </ |
- | #### **Beispiel:** | + | === Beispiel: |
- | ```bash | + | < |
#!/bin/bash | #!/bin/bash | ||
zahl=1 | zahl=1 | ||
Zeile 61: | Zeile 60: | ||
zahl=$((zahl + 1)) | zahl=$((zahl + 1)) | ||
done | done | ||
- | ``` | + | </ |
**Ausgabe: | **Ausgabe: | ||
- | ``` | + | < |
Zahl: 1 | Zahl: 1 | ||
Zahl: 2 | Zahl: 2 | ||
Zeile 70: | Zeile 69: | ||
Zahl: 4 | Zahl: 4 | ||
Zahl: 5 | Zahl: 5 | ||
- | ``` | + | </ |
- | --- | + | ==== Alle Zeilen einer Datei lesen ==== |
+ | Diese Iteration liest eine Datei zeilenweise und stellt die Daten in die Variable '' | ||
+ | Die Variable mit dem Dateinamen wird in der letzten Zeile mittels Umleitung (''<'' | ||
+ | <code bash> | ||
+ | filename=someFile.dat | ||
+ | while read data; do | ||
+ | # Process the data | ||
+ | done < $filename | ||
- | ### **3. `until`-Schleife** | + | ===== until-Schleife |
- | Die **`until`-Schleife** ist das Gegenteil der `while`-Schleife: Sie läuft, bis eine Bedingung wahr wird. | + | Die **until-Schleife** ist das Gegenteil der **while-Schleife**: Sie läuft, bis eine Bedingung wahr wird. |
- | #### **Grundstruktur: | + | ==== Grundstruktur: |
- | ```bash | + | < |
until [ Bedingung ]; do | until [ Bedingung ]; do | ||
# Befehle | # Befehle | ||
done | done | ||
- | ``` | + | </ |
- | #### **Beispiel:** | + | ==== Beispiel: |
- | ```bash | + | < |
#!/bin/bash | #!/bin/bash | ||
zahl=1 | zahl=1 | ||
Zeile 93: | Zeile 99: | ||
zahl=$((zahl + 1)) | zahl=$((zahl + 1)) | ||
done | done | ||
- | ``` | + | </ |
**Ausgabe: | **Ausgabe: | ||
- | ``` | + | < |
Zahl: 1 | Zahl: 1 | ||
Zahl: 2 | Zahl: 2 | ||
Zeile 102: | Zeile 108: | ||
Zahl: 4 | Zahl: 4 | ||
Zahl: 5 | Zahl: 5 | ||
- | ``` | + | </ |
- | + | ||
- | --- | + | |
- | ### **4. Schleifensteuerung** | + | ===== Schleifensteuerung |
Bash bietet Befehle, um Schleifen zu kontrollieren: | Bash bietet Befehle, um Schleifen zu kontrollieren: | ||
- | - **`break`**: Beendet die Schleife vorzeitig. | + | * **break**: Beendet die Schleife vorzeitig. |
- | - **`continue`**: Überspringt den aktuellen Schleifendurchlauf. | + | |
- | #### **Beispiele:** | + | ==== Beispiele: |
- | ```bash | + | < |
# Mit break | # Mit break | ||
for i in {1..10}; do | for i in {1..10}; do | ||
Zeile 121: | Zeile 125: | ||
echo "Zahl: $i" | echo "Zahl: $i" | ||
done | done | ||
- | ``` | + | </ |
- | ```bash | + | < |
# Mit continue | # Mit continue | ||
for i in {1..5}; do | for i in {1..5}; do | ||
Zeile 131: | Zeile 135: | ||
echo "Zahl: $i" | echo "Zahl: $i" | ||
done | done | ||
- | ``` | + | </ |
- | --- | + | ---- |
- | ### **Zusammenfassung** | + | ===== Zusammenfassung |
- | | Schleife | + | ^ Schleife |
- | |------------|------------------------------------------------------|--------------------------------------------| | + | | **for** | Iteriert über eine Liste von Werten oder Dateien | Wiederholung bei bekannter Anzahl von Werten | |
- | | `for` | + | | **while** | Läuft, solange eine Bedingung wahr ist |
- | | `while` | + | | **until** | Läuft, bis eine Bedingung wahr wird | Dynamische Bedingung, Gegenteil von while | |
- | | `until` | + | | **break** | Beendet die Schleife |
- | | `break` | + | | **continue** | Überspringt den aktuellen Schleifendurchlauf | Fortsetzen der Schleife |
- | | `continue` | Überspringt den aktuellen Schleifendurchlauf | + | |
- | Mit diesen Schleifen können Sie wiederkehrende Aufgaben effizient automatisieren und komplexe Abläufe strukturieren. | + | ---- |
+ | {{tag> | ||
+ | [[https:// |