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:// | ||