Erstes Bash-Skript
Bash-Scripting
Was ist ein Bash-Skript?
Ein Skript ist eine Textdatei mit mehreren Shell-Befehlen, die nacheinander ausgeführt werden. Statt jeden Befehl einzeln einzutippen, fasst du wiederkehrende Aufgaben in einer Datei zusammen und startest sie mit einem Aufruf. So automatisierst du Backups, Installationen oder Auswertungen.
Die Shebang-Zeile
Jedes Skript beginnt mit einer Shebang-Zeile. Sie sagt dem System, mit welchem Interpreter die Datei ausgeführt werden soll:
#!/bin/bash echo "Hallo, Welt!" echo "Heute ist: $(date)"
Die ersten zwei Zeichen #! heißen Shebang, danach folgt der Pfad zum Interpreter. #!/bin/bash ist Standard. Alternativ nutzt man #!/usr/bin/env bash, das bash über den Suchpfad findet – portabler über verschiedene Systeme.
Ausführbar machen
Eine frisch erstellte Datei ist noch nicht ausführbar. Du musst ihr mit chmod das Ausführungsrecht geben:
$ chmod +x skript.sh $ ls -l skript.sh -rwxr-xr-x 1 anna anna 64 Jun 20 14:00 skript.sh
Das x in den Rechten zeigt: Die Datei darf ausgeführt werden.
Skript ausführen
$ ./skript.sh Hallo, Welt! Heute ist: Fri Jun 20 14:00:00 CEST 2026
Warum ./? Aus Sicherheitsgründen sucht die Shell Programme nur in den Verzeichnissen der PATH-Variable – das aktuelle Verzeichnis gehört absichtlich nicht dazu. Mit ./ gibst du den Pfad explizit an. Alternativ kannst du das Skript ohne Ausführungsrecht so starten:
$ bash skript.sh
Dabei wird die Shebang-Zeile ignoriert, weil du den Interpreter direkt aufrufst.
Kommentare
Alles nach # (außer der Shebang) ist ein Kommentar und wird ignoriert. Nutze Kommentare, um dein Skript zu erklären:
#!/bin/bash # Dieses Skript begrüßt den Benutzer echo "Willkommen, $USER" # gibt den Anmeldenamen aus
Wozu dient die Zeile #!/bin/bash?
Sicherheit & gute Praxis
Führe niemals fremde Skripte ungeprüft aus, schon gar nicht mit sudo – sie könnten beliebige Befehle enthalten. Lies ein Skript vor dem Start. Empfehlenswert ist, robuste Skripte mit set -euo pipefail direkt nach der Shebang zu beginnen: Das beendet das Skript bei Fehlern und bei Verwendung undefinierter Variablen. Im nächsten Schritt lernst du, wie Variablen dein Skript flexibel machen.