Bash-Scripting: Aufgaben automatisieren

Wiederkehrende Aufgaben musst du nicht von Hand erledigen. Lerne die Grundlagen von Bash-Scripting und automatisiere deine Arbeit im Terminal.

Teilen
Bash-Scripting: Aufgaben automatisieren

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.sh

Das ./ 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!"
fi

Die 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"
done

Der 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.