Die Kommandozeile ist nicht nur ein Werkzeug für einzelne Befehle – mit Bash-Scripting lassen sich komplexe Abläufe automatisieren, wiederkehrende Aufgaben vereinfachen und ganze Systeme verwalten.
In diesem Beitrag legen wir die Grundlagen für das Erstellen und Ausführen von Bash-Skripten.
1. Was ist Bash-Scripting?
Bash-Skripte sind einfache Textdateien, die Befehle in einer definierten Reihenfolge enthalten. Die Bash (Bourne Again Shell) interpretiert diese Befehle und führt sie aus.
Einsatzgebiete:
- Automatisierte Backups
- System- und Netzwerküberwachung
- Installations- und Konfigurationsskripte
- Datenverarbeitung und Log-Analysen
2. Aufbau eines Bash-Skripts
Ein Bash-Skript ist eine Textdatei mit mindestens zwei grundlegenden Elementen:
- Shebang: Gibt die auszuführende Shell an (meist
/bin/bash
) - Befehle: Die eigentlichen Anweisungen
Beispiel:
#!/bin/bash
echo "Hallo Welt"
Speichern als skript.sh
, dann ausführbar machen:
chmod +x skript.sh
Ausführen:
./skript.sh
3. Kommentare im Skript
Kommentare beginnen mit #
und werden nicht ausgeführt:
#!/bin/bash
# Dies ist ein Kommentar
echo "Hallo Welt"
4. Variablen verwenden
Variablen speichern Werte und werden ohne Leerzeichen definiert:
#!/bin/bash
name="Max"
echo "Hallo $name"
5. Eingaben vom Benutzer
Mit read
können Eingaben verarbeitet werden:
#!/bin/bash
echo "Wie heißt du?"
read name
echo "Hallo $name"
6. Einfache mathematische Operationen
Bash kann auch rechnen:
#!/bin/bash
a=5
b=3
summe=$((a + b))
echo "Summe: $summe"
7. Ausgaben und Umleitungen
- Ausgabe in Datei schreiben:
echo "Text" > datei.txt
- An Datei anhängen:
echo "Neuer Text" >> datei.txt
- Fehlerausgabe umleiten:
ls /nichtvorhanden 2> fehler.log
8. Befehle verschachteln
- Mehrere Befehle in einer Zeile:
mkdir test && cd test && echo "Fertig"
→&&
führt den nächsten Befehl nur aus, wenn der vorherige erfolgreich war.
9. Praxisbeispiele
- Backup-Skript
#!/bin/bash ziel="/home/user/backup" mkdir -p "$ziel" cp -r /home/user/Dokumente "$ziel" echo "Backup abgeschlossen!"
- Logdatei mit Datum erstellen
#!/bin/bash logfile="log_$(date +%Y-%m-%d).txt" echo "Startzeit: $(date)" > "$logfile"
10. Zusammenfassung
Konzept | Beispiel |
---|---|
Shebang | #!/bin/bash |
Kommentar | # Dies ist ein Kommentar |
Variable | name="Max" |
Benutzer-Eingabe | read name |
Ausgabe | echo "Text" |
Rechnen | summe=$((a + b)) |
Schreibe einen Kommentar