Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m122:learningunits:lu01:ueberblick [2024/11/08 07:26] – msuter | modul:m122:learningunits:lu01:ueberblick [2024/11/11 14:20] (aktuell) – [Eingebaute Variablen:] msuter | ||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| - | ### 2. Die Grundlagen eines Bash-Skripts | + | ===== Die Grundlagen eines Bash-Skripts |
| Ein Bash-Skript beginnt normalerweise mit einer sogenannten **Shebang**-Zeile, | Ein Bash-Skript beginnt normalerweise mit einer sogenannten **Shebang**-Zeile, | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| - | ``` | + | </ |
| Ein einfaches Beispiel: | Ein einfaches Beispiel: | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| # Mein erstes Bash-Skript | # Mein erstes Bash-Skript | ||
| echo " | echo " | ||
| - | ``` | + | </ |
| Speichern Sie dieses Skript in einer Datei, z. B. `hallo.sh`, und machen Sie die Datei ausführbar: | Speichern Sie dieses Skript in einer Datei, z. B. `hallo.sh`, und machen Sie die Datei ausführbar: | ||
| - | ```bash | + | < |
| chmod +x hallo.sh | chmod +x hallo.sh | ||
| ./hallo.sh | ./hallo.sh | ||
| - | ``` | + | </ |
| Das Skript gibt dann den Text " | Das Skript gibt dann den Text " | ||
| - | ### 3. Variablen und ihre Verwendung | + | ===== Variablen und ihre Verwendung |
| In Bash können Sie Variablen verwenden, um Daten zu speichern und diese im Skript wiederzuverwenden. | In Bash können Sie Variablen verwenden, um Daten zu speichern und diese im Skript wiederzuverwenden. | ||
| - | #### Beispiel: | + | ==== Beispiel: |
| - | ```bash | + | |
| + | < | ||
| #!/bin/bash | #!/bin/bash | ||
| NAME=" | NAME=" | ||
| echo " | echo " | ||
| - | ``` | + | </ |
| Variablen werden ohne das `$`-Zeichen deklariert (`NAME=" | Variablen werden ohne das `$`-Zeichen deklariert (`NAME=" | ||
| - | #### Eingebaute Variablen: | + | ===== Eingebaute Variablen: |
| Bash enthält viele vordefinierte Variablen. Einige wichtige Beispiele: | Bash enthält viele vordefinierte Variablen. Einige wichtige Beispiele: | ||
| - | - `$0`: Der Name des Skripts. | + | * `$0`: Der Name des Skripts. |
| - | - `$1`, `$2`, ...: Übergabeparameter an das Skript. | + | |
| - | - `$#`: Anzahl der Übergabeparameter. | + | |
| - | - `$?`: Rückgabewert des letzten Befehls. | + | |
| - | #### Beispiel: | + | ==== |
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| echo "Das Skript heißt $0" | echo "Das Skript heißt $0" | ||
| echo "Der erste Parameter ist $1" | echo "Der erste Parameter ist $1" | ||
| echo " | echo " | ||
| - | ``` | + | </ |
| - | ### 4. Kontrollstrukturen | + | ===== Kontrollstrukturen |
| + | |||
| + | |||
| + | ==== Bedingte Anweisungen (if-else) ==== | ||
| - | #### Bedingte Anweisungen (if-else) | ||
| Mit `if`-Bedingungen lassen sich Verzweigungen definieren: | Mit `if`-Bedingungen lassen sich Verzweigungen definieren: | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| NUMBER=5 | NUMBER=5 | ||
| Zeile 73: | Zeile 79: | ||
| echo " | echo " | ||
| fi | fi | ||
| - | ``` | + | </ |
| **Vergleichsoperatoren: | **Vergleichsoperatoren: | ||
| - | - `-eq`: gleich (==) | + | * `-eq`: gleich ('' |
| - | - `-ne`: ungleich (!=) | + | |
| - | - `-lt`: kleiner als (<) | + | |
| - | - `-gt`: größer als (>) | + | |
| - | - `-le`: kleiner oder gleich (<=) | + | |
| - | - `-ge`: größer oder gleich (>=) | + | |
| + | |||
| + | ==== Schleifen (for, while) ==== | ||
| - | #### Schleifen (for, while) | ||
| **for-Schleife: | **for-Schleife: | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| for i in 1 2 3 4 5; do | for i in 1 2 3 4 5; do | ||
| echo "Zahl: $i" | echo "Zahl: $i" | ||
| done | done | ||
| - | ``` | + | </ |
| **while-Schleife: | **while-Schleife: | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| COUNTER=1 | COUNTER=1 | ||
| Zeile 103: | Zeile 110: | ||
| ((COUNTER++)) | ((COUNTER++)) | ||
| done | done | ||
| - | ``` | + | </ |
| + | |||
| + | ===== Funktionen ===== | ||
| - | ### 5. Funktionen | ||
| Funktionen sind nützlich, um wiederverwendbare Codeblöcke zu definieren: | Funktionen sind nützlich, um wiederverwendbare Codeblöcke zu definieren: | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| # Funktion definieren | # Funktion definieren | ||
| Zeile 119: | Zeile 127: | ||
| begruesse " | begruesse " | ||
| begruesse " | begruesse " | ||
| - | ``` | + | </ |
| + | |||
| + | ===== Nützliche Befehle in Bash-Skripten ===== | ||
| - | ### 6. Nützliche Befehle in Bash-Skripten | ||
| - | - **`echo`**: Gibt Text aus. | + | * **`echo`**: Gibt Text aus. |
| - | - **`read`**: Liest Benutzereingaben. | + | |
| - | - **`expr`**: Rechnet einfache arithmetische Ausdrücke. | + | |
| - | - **`test`** oder `[ ... ]`: Prüft Bedingungen (Dateien, Strings, Zahlen). | + | |
| - | - **`exit`**: Beendet das Skript und gibt einen Status zurück. | + | |
| Beispiel für Benutzereingabe und Arithmetik: | Beispiel für Benutzereingabe und Arithmetik: | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| echo "Gib eine Zahl ein:" | echo "Gib eine Zahl ein:" | ||
| Zeile 139: | Zeile 148: | ||
| sum=$(expr $num1 + $num2) | sum=$(expr $num1 + $num2) | ||
| echo "Die Summe ist: $sum" | echo "Die Summe ist: $sum" | ||
| - | ``` | + | </ |
| - | ### 7. Fehlerbehandlung | + | ===== Fehlerbehandlung |
| Mit `$?` kann der Rückgabewert des letzten Befehls überprüft werden. Ein Wert von `0` bedeutet Erfolg, jeder andere Wert zeigt einen Fehler an. | Mit `$?` kann der Rückgabewert des letzten Befehls überprüft werden. Ein Wert von `0` bedeutet Erfolg, jeder andere Wert zeigt einen Fehler an. | ||
| - | ```bash | + | < |
| #!/bin/bash | #!/bin/bash | ||
| mkdir / | mkdir / | ||
| Zeile 153: | Zeile 162: | ||
| echo " | echo " | ||
| fi | fi | ||
| - | ``` | + | </ |
| - | ### 8. Praktische Tipps | + | ===== Praktische Tipps ===== |
| - | - Verwenden Sie **Kommentare** (`#`), um den Code lesbarer zu machen. | + | * Verwenden Sie **Kommentare** (`#`), um den Code lesbarer zu machen. |
| - | - Testen Sie Skripte Schritt für Schritt, insbesondere bei komplexen Aufgaben. | + | |
| - | - Nutzen Sie **Debugging**-Modi mit `bash -x script.sh`, um zu sehen, wie Befehle ausgeführt werden. | + | |
| - | ### Fazit | + | ===== Fazit ===== |
| Die Shellprogrammierung mit Bash bietet eine Vielzahl von Möglichkeiten, | Die Shellprogrammierung mit Bash bietet eine Vielzahl von Möglichkeiten, | ||