Shebang ·
Variablen ·
Bedingungen ·
Schleifen ·
Funktionen
Mit diesen Grundlagen können Sie eigene Bash-Skripte schreiben, um Aufgaben zu automatisieren, Systeme zu verwalten und Prozesse zu vereinfachen.
Das Shebang (#!) in der ersten Zeile eines Skripts legt fest, welcher Interpreter das Skript ausführen soll.
| Shebang | Beschreibung |
|---|---|
| #!/bin/bash | Bash-Shell (Standard) |
| #!/bin/sh | POSIX-kompatible Shell (einfacher) |
| #!/usr/bin/env bash | Sucht Bash im PATH (portabler) |
| #!/usr/bin/python3 | Python-Skript |
#!/usr/bin/env bash für maximale Portabilität. So wird die Bash-Version aus dem PATH des Nutzers verwendet.
Variablen speichern Werte wie Zeichenketten, Zahlen oder Pfade. Der Zugriff erfolgt mit $ vor dem Variablennamen.
| Regel | Beschreibung |
|---|---|
| name="Wert" | Zuweisung (keine Leerzeichen um =) |
| $name | Zugriff auf den Wert (mit $) |
| ${name} | Explizite Klammerung (bei Verkettung) |
| "$name" | Mit Anführungszeichen (Leerzeichen erhalten) |
"${var}" in komplexen Strings, um Probleme mit Leerzeichen oder Sonderzeichen zu vermeiden.
Bedingungen (if-else) ermöglichen die Steuerung des Skriptablaufs basierend auf Prüfungen (Datei existiert? Wert ist gleich?).
| Operator | Beschreibung |
|---|---|
| [[ -f datei ]] | Prüft, ob datei existiert und eine reguläre Datei ist |
| [[ -d verzeichnis ]] | Prüft, ob verzeichnis existiert und ein Ordner ist |
| [[ -z $var ]] | Prüft, ob $var leer ist |
| [[ -n $var ]] | Prüft, ob $var nicht leer ist |
| [[ $a == $b ]] | Vergleicht zwei Werte auf Gleichheit |
| [[ $a != $b ]] | Vergleicht zwei Werte auf Ungleichheit |
| [[ $a -gt $b ]] | Größer als (greater than) – für Zahlen |
| [[ $a -lt $b ]] | Kleiner als (less than) – für Zahlen |
[[ ... ]] mit doppelten Klammern für moderne Bash-Bedingungen – sie sind sicherer bei leeren Variablen.
Schleifen führen Codeblöcke wiederholt aus – für Listen, Zahlenbereiche oder solange eine Bedingung erfüllt ist.
| Typ | Beschreibung |
|---|---|
| for i in {1..5} | Zahlenbereich von 1 bis 5 |
| for datei in *.txt | Dateien mit .txt-Endung durchlaufen |
| while [ $i -le 5 ] | Führt aus, solange Bedingung wahr ist |
| until [ $i -gt 5 ] | Führt aus, bis Bedingung wahr wird |
break können Sie eine Schleife vorzeitig beenden, mit continue springen Sie zum nächsten Durchlauf.
Funktionen fassen Codeblöcke zusammen, die mehrfach aufgerufen werden können. Sie machen Skripte modularer und besser wartbar.
| Konzept | Beschreibung |
|---|---|
| $1, $2, ... | Parameter innerhalb der Funktion |
| $# | Anzahl der Parameter |
| return [Wert] | Rückgabewert (0 = Erfolg) |
| local var | Lokale Variable (nur innerhalb der Funktion) |
local, um Seiteneffekte im globalen Skript zu vermeiden.
#!/bin/bash
var="Wert"
if / else
for / while
function()