Bash Scripting Grundlagen
Skriptbeispiele.Hier findet Ihr einige Skriptbeispiele aus unseren Trainings und Projekterfahrungen.
Mit Bash-Skripten kann man fast alles realisieren, was ein Netzwerkadministrator für den Hausgebrauch benötigt, sei es das automatische Setzen von Berechtigungen für Samba-Freigaben oder das Prüfen einer eingebundene Netzwerkressource.
Inhalt
1. Skript mit Parametern aufrufen und auswerten
2. IP-Adresse, default Gateway und DNS-Server manuell ändern
3. IF-Beispiel mit Eingabe einer Zahl
4. IF-Beispiel! Überprüfung ob ein Verzeichnis vorhanden ist
6. Einfache While-Wiederholung (Schleife)
7. Dateien zeilenweise durchlaufen
9. Lustiges Beispiel mit akustischem Signal
10. Jedes Zeichen einer Zeichenkette abarbeiten
11. Arrays in einem Bash-Skript
1. Skript mit Parametern aufrufen und auswerten
Wird ein Skript mit Parameter aufgerufen, so können diese Parameter mit den Variablen $1, $2, $3 usw. weiterverarbeitet werden. Ruft man also das Skript parameter.sh folgendermaßen auf:
# parameter.sh wert1 wert2
so erhält man die Ausgabe:
wert1 wert2
2. IP-Adresse, default Gateway und DNS-Server manuell ändern
Zeile 9: Hier wird das Netzwerkgerät (eth0) manuell auf eine andere IP-Adresse eingestellt.
Zeile 11-12: Das Standardgateway wird gelöscht und anschließend auf den neuen Wert der Variablen $gw gesetzt.
Zeile 16: Schreibt den DNS-Server (in diesem Fall gleich dem Standardgateway) in die Datei /etc/resolv.conf
3. IF-Beispiel mit Eingabe einer Zahl
In diesem Beispiel wird die Variable $antwort abgefragt und mit der Testanweisung überprüft.
4. IF-Beispiel! Überprüfung, ob ein Verzeichnis vorhanden ist
Eine weitere Variante ist das Überprüfen von Dateien und Verzeichnissen.
Im vorliegenden Fall wird geprüft, ob das Verzeichnis /mnt/sicherung existiert, im Nein-Fall wird das Verzeichnis angelegt.
5. Mehrfachselektion
Mehrfachselektionen können mit case abgehandelt werden. Die Besonderheit ist das doppelte Semikolon welches die break-Anweisung sendet. Hier wird eine Variable $antwort eingelesen und auf die Buchstaben "j, J" oder "n, N" hin geprüft.
6. Einfache While-Wiederholung (Schleife)
Im gezeigten Beispiel läuft eine Schleife solange die Variable $weiter den Wert "j" besitzt.
Pro Schleifendurchlauf wird die Variable $weiter mit dem read Kommando wieder neu eingelesen!
7. Dateien zeilenweise durchlaufen
Die Beispieldatei liste1.txt enthält folgende Werte:
| apfel |
| birne |
| banane |
| alles obst |
| ende gelände |
Mit dem nachfolgenden Shellskript wird diese Datei zeilenweise durchlaufen. Jeder Wert steht somit in der Variable $daten und kann entsprechend weiterverarbeitet werden.
8. Zählerschleifen
Zählerschleifen wie man sie von anderen Programmiersprachen kennt, sind bei Bash Scripting natürlich auch möglich
9. Lustiges Beispiel mit akustischem Signal
Bei diesem Beispiel muss das Paket beep installiert sein!
10. Jedes Zeichen einer Zeichenkette abarbeiten
Zeile 8: Ein String wird in der Variable $S angelegt.
Zeile 11: Mit der Anweisung ${#S} wird die Anzahl Zeichen von $S ermittelt.
Die Schleife läuft solange $n kleiner als die Anzahl Zeichen in $S.
Zeile 13: Mit der Anweisung ${S:n:1} wird an Stelle n ein Zeichen mit Länge 1 ausgelesen.
Zeile 14: Erhöht den Zähler n pro Schleifendurchlauf um 1.
11. Arrays in einem Bash Skript
Dieses Beispiel zeigt, wie man indexbasierte Arrays abarbeitet.
