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, |