Herzlich willkommen in der Welt der Bash-Skripte! Wenn du schon immer mal wissen wolltest, wie man die Automatisierung unter Linux (oder macOS) in die eigenen Hände nimmt, dann bist du hier genau richtig. In diesem Artikel begleiten wir dich auf dem Weg vom blutigen Anfänger zum fähigen Skriptschreiber. Keine Angst, wir fangen ganz von vorne an und erklären jeden Schritt anhand eines einfachen, aber nützlichen Skripts.
Was ist ein Bash-Skript überhaupt?
Ein Bash-Skript ist im Grunde eine Textdatei, die eine Reihe von Befehlen enthält, die der Computer nacheinander ausführen soll. Diese Befehle sind in der Sprache der Bash-Shell geschrieben, einer Art Kommandozeileninterpreter. Stell dir vor, du gibst jeden Befehl einzeln in die Konsole ein – ein Skript macht genau das, nur automatisiert und viel schneller!
Der große Vorteil von Skripten liegt in der Automatisierung repetitiver Aufgaben. Brauchst du jeden Tag die gleiche Abfolge von Befehlen? Schreib ein Skript! Willst du bestimmte Aktionen automatisch ausführen lassen, wenn ein bestimmtes Ereignis eintritt? Ein Skript kann dir helfen.
Unser erstes Skript: Eine Begrüßung
Lass uns mit einem ganz einfachen Beispiel starten: Ein Skript, das den Benutzer begrüßt.
1. **Erstelle die Datei:** Öffne einen Texteditor deiner Wahl (z.B. `nano`, `vim`, `gedit`) und speichere eine neue Datei unter dem Namen `begruessung.sh`. Die Endung `.sh` ist Konvention, um anzuzeigen, dass es sich um ein Shell-Skript handelt, aber sie ist technisch nicht zwingend erforderlich.
2. **Füge den Shebang hinzu:** Die erste Zeile unseres Skripts ist sehr wichtig und sieht so aus:
„`bash
#!/bin/bash
„`
Diese Zeile, auch Shebang genannt, teilt dem System mit, mit welcher Shell das Skript ausgeführt werden soll. In diesem Fall ist es die Bash-Shell. Ohne den Shebang weiß das System nicht, wie es die Befehle interpretieren soll.
3. **Schreibe den Begrüßungsbefehl:** Füge nun die eigentliche Begrüßung hinzu:
„`bash
echo „Hallo Welt!”
„`
Der Befehl `echo` gibt einfach den Text zwischen den Anführungszeichen in der Konsole aus.
4. **Speichere die Datei:** Speichere die `begruessung.sh` Datei.
5. **Mache die Datei ausführbar:** Bevor du das Skript ausführen kannst, musst du ihm die Ausführungsberechtigung geben. Öffne dein Terminal und navigiere zu dem Verzeichnis, in dem du die Datei gespeichert hast. Gib dann folgenden Befehl ein:
„`bash
chmod +x begruessung.sh
„`
Der Befehl `chmod +x` ändert die Zugriffsrechte der Datei, sodass sie ausführbar wird.
6. **Führe das Skript aus:** Jetzt kannst du das Skript ausführen, indem du im Terminal folgenden Befehl eingibst:
„`bash
./begruessung.sh
„`
Das `./` steht für „im aktuellen Verzeichnis”. Alternativ kannst du auch den absoluten Pfad zur Datei angeben.
Wenn alles geklappt hat, sollte in deinem Terminal die Ausgabe „Hallo Welt!” erscheinen. Herzlichen Glückwunsch, du hast dein erstes Bash-Skript geschrieben und ausgeführt!
Den Benutzer persönlich begrüßen: Variablen und Input
Das war ein guter Anfang, aber lass uns das Skript etwas interaktiver gestalten. Wir wollen den Benutzer nach seinem Namen fragen und ihn dann persönlich begrüßen.
1. **Lies den Benutzernamen ein:** Ersetze den bisherigen Inhalt der `begruessung.sh` Datei durch folgendes:
„`bash
#!/bin/bash
echo „Bitte gib deinen Namen ein:”
read name
echo „Hallo, $name!”
„`
Hier verwenden wir den Befehl `read`, um die Eingabe des Benutzers zu lesen und in der Variablen `name` zu speichern.
2. **Erklärt:**
* `echo „Bitte gib deinen Namen ein:”`: Gibt eine Aufforderung zur Eingabe aus.
* `read name`: Liest die Eingabe des Benutzers und speichert sie in der Variablen `name`.
* `echo „Hallo, $name!”`: Gibt eine personalisierte Begrüßung aus, wobei `$name` den Wert der Variablen `name` enthält. Die Anführungszeichen sind wichtig, damit die Variable expandiert wird.
3. **Speichere und führe aus:** Speichere die Datei und führe sie wie zuvor mit `./begruessung.sh` aus. Das Skript wird dich nun nach deinem Namen fragen und dich dann persönlich begrüßen.
Bedingungen: Mehr als nur begrüßen
Jetzt wird es etwas spannender. Wir wollen das Skript erweitern, sodass es basierend auf der Eingabe des Benutzers unterschiedliche Aktionen ausführt. Dazu nutzen wir Bedingungen (`if`, `then`, `else`, `fi`).
1. **Erweitere das Skript:** Füge folgendes zu deinem Skript hinzu:
„`bash
#!/bin/bash
echo „Bitte gib deinen Namen ein:”
read name
if [ „$name” == „Admin” ]; then
echo „Willkommen, Administrator!”
else
echo „Hallo, $name!”
fi
„`
2. **Erklärt:**
* `if [ „$name” == „Admin” ]; then`: Diese Zeile beginnt die Bedingung. Sie prüft, ob der Wert der Variablen `name` gleich „Admin” ist. Die eckigen Klammern (`[]`) sind ein alternativer Befehl `test` für bedingte Ausdrücke. Die doppelten Anführungszeichen um `$name` sind wichtig, um Fehler zu vermeiden, wenn die Variable leer ist. `==` ist der Operator für den Vergleich von Strings.
* `echo „Willkommen, Administrator!”`: Wenn die Bedingung wahr ist (also der Benutzer „Admin” eingegeben hat), wird diese Zeile ausgeführt.
* `else`: Wenn die Bedingung falsch ist, wird der Code nach `else` ausgeführt.
* `echo „Hallo, $name!”`: Die Standardbegrüßung, wenn der Benutzer nicht „Admin” ist.
* `fi`: Beendet die `if`-Anweisung. Jede `if`-Anweisung muss mit einem `fi` abgeschlossen werden.
3. **Speichere und teste:** Speichere das Skript und führe es mehrmals aus. Probiere verschiedene Namen aus, einschließlich „Admin”. Du wirst sehen, dass die Ausgabe unterschiedlich ist, je nachdem, welchen Namen du eingibst.
Schleifen: Automatisierung pur
Schleifen ermöglichen es uns, Codeblöcke mehrmals zu wiederholen. Wir schauen uns die `for`-Schleife an.
1. **Füge eine Schleife hinzu:** Ändere das Skript wie folgt:
„`bash
#!/bin/bash
for i in 1 2 3 4 5; do
echo „Durchlauf: $i”
done
„`
2. **Erklärt:**
* `for i in 1 2 3 4 5; do`: Dies startet die `for`-Schleife. Die Variable `i` nimmt nacheinander die Werte 1, 2, 3, 4 und 5 an.
* `echo „Durchlauf: $i”`: Gibt in jedem Durchlauf den aktuellen Wert von `i` aus.
* `done`: Beendet die `for`-Schleife.
3. **Speichere und führe aus:** Speichere das Skript und führe es aus. Du solltest sehen, wie das Skript die Zahlen von 1 bis 5 ausgibt.
Nützliche Befehle und Tipps
Hier sind einige nützliche Befehle und Tipps, die dir beim Schreiben von Bash-Skripten helfen:
* **`echo`:** Gibt Text in der Konsole aus.
* **`read`:** Liest Benutzereingaben.
* **`if`, `then`, `else`, `fi`:** Für bedingte Anweisungen.
* **`for`, `while`:** Für Schleifen.
* **`chmod +x dateiname.sh`:** Macht ein Skript ausführbar.
* **Kommentare:** Verwende `#` um Kommentare in deinen Code einzufügen. Das ist sehr wichtig, um deinen Code verständlich zu machen.
Fortgeschrittene Themen (Kurzer Ausblick)
* **Funktionen:** Definiere eigene Funktionen, um Code wiederzuverwenden.
* **Arrays:** Speichere Listen von Werten.
* **Reguläre Ausdrücke:** Für komplexe Textmustererkennung.
* **`sed` und `awk`:** Mächtige Textverarbeitungswerkzeuge.
Fazit
Wir haben in diesem Artikel die Grundlagen der Bash-Skriptprogrammierung kennengelernt. Du hast gelernt, wie man ein einfaches Skript erstellt, Benutzereingaben liest, Bedingungen verwendet und Schleifen einsetzt. Mit diesem Wissen bist du bestens gerüstet, um eigene, nützliche Skripte zu schreiben und deine Aufgaben unter Linux (oder macOS) zu automatisieren. Übung macht den Meister! Experimentiere, probiere neue Dinge aus und habe Spaß dabei. Die Möglichkeiten sind endlos. Viel Erfolg auf deinem Weg zum Bash-Skript-Profi!