Bash-Scripting: Aufgaben automatisieren
Wiederkehrende Aufgaben musst du nicht von Hand erledigen. Lerne die Grundlagen von Bash-Scripting und automatisiere deine Arbeit im Terminal.
Sobald du dieselben Befehle immer wieder tippst, ist es Zeit für ein Bash-Script. Ein Script ist nichts anderes als eine Textdatei mit einer Folge von Befehlen, die du auf einmal ausführen kannst. So automatisierst du Backups, Installationen oder wiederkehrende Aufräumarbeiten. In diesem Beitrag lernst du die Grundlagen.
Dein erstes Script
Ein Bash-Script ist eine einfache Textdatei. Die erste Zeile, die sogenannte Shebang, legt fest, mit welchem Interpreter das Script laufen soll. Danach folgen deine Befehle.
#!/bin/bash
# Dies ist ein Kommentar
echo "Hallo, Welt!"
echo "Heute ist $(date)"Die Zeile #!/bin/bash sagt dem System, dass es die Bash verwenden soll. Mit echo gibst du Text aus, und mit $(date) fügst du die Ausgabe eines anderen Befehls ein.
Script ausführbar machen und starten
Bevor du ein Script direkt aufrufen kannst, musst du es ausführbar machen. Das geschieht mit dem Befehl chmod.
# Script ausführbar machen
chmod +x mein-script.sh
# Script starten
./mein-script.sh
# Alternativ direkt mit der Bash aufrufen
bash mein-script.shDas ./ vor dem Namen ist wichtig: Es sagt der Shell, dass das Script im aktuellen Ordner liegt. Ohne diesen Hinweis würde sie nur in den Systemordnern suchen.
Variablen verwenden
Mit Variablen speicherst du Werte, die du später wiederverwenden möchtest. In Bash definierst du sie ohne Leerzeichen um das Gleichheitszeichen.
#!/bin/bash
name="Anna"
ordner="/home/anna/backups"
echo "Hallo $name"
echo "Sicherung liegt in $ordner"
# Den Wert eines Befehls in einer Variable speichern
heute=$(date +%Y-%m-%d)
echo "Datum: $heute"Beim Auslesen stellst du der Variable ein Dollarzeichen voran, etwa $name. Achte darauf, beim Zuweisen keine Leerzeichen zu verwenden, sonst gibt es eine Fehlermeldung.
Bedingungen mit if
Mit Bedingungen reagiert dein Script auf unterschiedliche Situationen. So kannst du zum Beispiel prüfen, ob eine Datei existiert, bevor du sie verarbeitest.
#!/bin/bash
datei="bericht.txt"
if [ -f "$datei" ]; then
echo "Die Datei existiert."
else
echo "Die Datei fehlt!"
fiDie eckigen Klammern [ ] leiten den Test ein. Mit -f prüfst du, ob eine reguläre Datei vorliegt. Mit -d würdest du stattdessen auf einen Ordner testen.
Schleifen für wiederholte Aufgaben
Schleifen sind das Herzstück der Automatisierung. Mit einer for-Schleife wendest du dieselben Befehle auf viele Elemente an, etwa auf alle Dateien in einem Ordner.
#!/bin/bash
# Über eine feste Liste laufen
for name in Anna Ben Carla; do
echo "Hallo $name"
done
# Über alle Textdateien im Ordner laufen
for datei in *.txt; do
echo "Verarbeite $datei"
doneDer Block zwischen do und done wird für jedes Element einmal ausgeführt. So kannst du etwa hunderte Dateien automatisch umbenennen oder verschieben.
Ein praktisches Backup-Script
Jetzt fügen wir alles zusammen. Dieses kleine Script erstellt ein datiertes Backup eines Ordners. Es zeigt, wie nützlich Bash-Scripting im Alltag ist.
#!/bin/bash
quelle="$HOME/projekte"
ziel="$HOME/backups"
datum=$(date +%Y-%m-%d)
# Zielordner anlegen, falls nicht vorhanden
mkdir -p "$ziel"
# Archiv erstellen
tar -czf "$ziel/backup-$datum.tar.gz" "$quelle"
echo "Backup erstellt: backup-$datum.tar.gz"Mit tar -czf packst und komprimierst du den gesamten Projektordner in eine einzige Archivdatei. Durch das Datum im Namen behältst du immer den Überblick über deine Sicherungen.
Fazit
Bash-Scripting verwandelt sich wiederholende Handarbeit in einen einzigen Befehl. Mit der Shebang-Zeile, Variablen, Bedingungen und Schleifen hast du bereits alle Bausteine, um echte Automatisierung zu betreiben. Fang klein an: Nimm eine Aufgabe, die du oft erledigst, und gieße sie in ein Script. Mit jeder Zeile lernst du dazu, und schon bald sparst du dir viel Zeit und vermeidest Tippfehler bei Routineaufgaben.