Ein Bash-Skript beginnt normalerweise mit einer sogenannten Shebang-Zeile, die angibt, welche Shell zur Ausführung verwendet werden soll. Für Bash-Skripte sieht die Shebang wie folgt aus:
#!/bin/bash
Ein einfaches Beispiel:
#!/bin/bash # Mein erstes Bash-Skript echo "Hallo, Welt!"
Speichern Sie dieses Skript in einer Datei, z. B. `hallo.sh`, und machen Sie die Datei ausführbar:
chmod +x hallo.sh ./hallo.sh
Das Skript gibt dann den Text „Hallo, Welt!“ aus.
In Bash können Sie Variablen verwenden, um Daten zu speichern und diese im Skript wiederzuverwenden.
#!/bin/bash NAME="Max" echo "Hallo, $NAME!"
Variablen werden ohne das `$`-Zeichen deklariert (`NAME="Max"`), aber mit `$` aufgerufen (`$NAME`).
Bash enthält viele vordefinierte Variablen. Einige wichtige Beispiele:
#!/bin/bash echo "Das Skript heißt $0" echo "Der erste Parameter ist $1" echo "Anzahl der Parameter: $#"
Mit `if`-Bedingungen lassen sich Verzweigungen definieren:
#!/bin/bash NUMBER=5 if [ $NUMBER -gt 3 ]; then echo "$NUMBER ist größer als 3" else echo "$NUMBER ist nicht größer als 3" fi
Vergleichsoperatoren:
==
)!=
)<
)>
)<
=
)>=
)for-Schleife:
#!/bin/bash for i in 1 2 3 4 5; do echo "Zahl: $i" done
while-Schleife:
#!/bin/bash COUNTER=1 while [ $COUNTER -le 5 ]; do echo "Durchlauf $COUNTER" ((COUNTER++)) done
Funktionen sind nützlich, um wiederverwendbare Codeblöcke zu definieren:
#!/bin/bash # Funktion definieren begruesse() { echo "Hallo, $1!" } # Funktion aufrufen begruesse "Maria" begruesse "Max"
Beispiel für Benutzereingabe und Arithmetik:
#!/bin/bash echo "Gib eine Zahl ein:" read num1 echo "Gib eine weitere Zahl ein:" read num2 sum=$(expr $num1 + $num2) echo "Die Summe ist: $sum"
Mit `$?` kann der Rückgabewert des letzten Befehls überprüft werden. Ein Wert von `0` bedeutet Erfolg, jeder andere Wert zeigt einen Fehler an.
#!/bin/bash mkdir /testverzeichnis if [ $? -ne 0 ]; then echo "Fehler beim Erstellen des Verzeichnisses" else echo "Verzeichnis erfolgreich erstellt" fi
Die Shellprogrammierung mit Bash bietet eine Vielzahl von Möglichkeiten, wiederkehrende Aufgaben zu automatisieren und effiziente Workflows zu schaffen. Mit grundlegenden Kenntnissen in Variablen, Kontrollstrukturen und Funktionen können Sie bereits erste nützliche Skripte erstellen.