Bash-Skript-Beispiele: Praktische Anwendungen für Linux und Unix
Sie sind neu in der Welt der Bash-Skript-Programmierung und möchten lernen, wie Sie Ihre ersten Skripte erstellen? In unserem Anfänger-Tutorial stellen wir Ihnen eine Auswahl an einfachen Bash-Skript-Beispielen vor, um Ihnen den Einstieg zu erleichtern. Lernen Sie die Grundlagen der Bash-Syntax, Variablen, Bedingungen und Schleifen kennen und entdecken Sie, wie Sie mit diesen Bausteinen nützliche Aufgaben automatisieren können.
Bash-Skript
Ein Bash-Skript ist eine Datei, die eine Reihe von Befehlen und Anweisungen enthält, die in Bash (Bourne Again Shell) interpretiert werden. Bash ist die Standard-Shell für die meisten Linux- und Unix-Systeme und wird zur Interaktion mit dem Betriebssystem und zur Ausführung von Befehlen verwendet.
Das Bash-Skript ermöglicht es dem Benutzer, eine Reihe von Befehlen und Aktionen in einer Datei zu speichern und diese dann als Einheit auszuführen. Skripte können Variablen, Schleifen, Bedingungen und Funktionen enthalten, um komplexe Aufgaben auszuführen oder sich wiederholende Aktionen zu automatisieren.
Durch den Einsatz von Bash-Skripten können wiederkehrende Aufgaben automatisiert und Arbeitsabläufe vereinfacht werden. Das Skript kann zum Durchsuchen von Dateien, zum Erstellen von Verzeichnissen, zum Bearbeiten von Daten, zum Konfigurieren von Systemeinstellungen und mehr verwendet werden. Sie bieten eine effiziente Möglichkeit, komplexe Aufgaben zu automatisieren und wiederholbare Aktionen in einem konsistenten, wiederholbaren Format auszuführen.
Bash-Skripte können in jedem Texteditor erstellt und dann über die Bash-Shell ausgeführt werden. Um ein Bash-Skript auszuführen, kann der Befehl „bash“ gefolgt vom Dateinamen des Skripts verwendet werden, oder das Skript kann direkt mit dem Dateinamen als Befehl ausgeführt und ausgeführt werden.
Die Vielseitigkeit und Leistungsfähigkeit von Bash-Scripting machen es zu einem wertvollen Werkzeug für Systemadministratoren, Entwickler und Benutzer, die ihren Workflow automatisieren und anpassen möchten.
Voraussetzungen
Ein Linux-Server mit aktiviertem Root-Zugriff oder ein Benutzer mit sudo-Privilegien. Alle gängigen Linux-Distributionen (Debian, Ubuntu, CentOS, Fedora usw.) sind in der Lage, Shell-Skripte auszuführen.
Der echo-Befehl in Skripten
Sie können ein Bash-Skript vom Terminal oder von einer auf Ihrem Computer oder Server gehosteten Bash-Datei ausführen.
Schreiben Sie Ihr erstes Beispiel-Bash-Skript, indem Sie eine einfache Shell-Skriptdatei namens test.sh erstellen, die die Zeile „Hello world!“ ausgibt.
nano test.sh
Die Erweiterung .sh steht für Shell. Fahren Sie fort, indem Sie die folgenden Zeilen hinzufügen:
#!/bin/bash
echo "Hallo Welt!"
Zum Speichern drücken Sie Strg+O und dann die Eingabetaste, um den Dateinamen zu bestätigen. Drücken Sie dann Strg+X, um den Nano-Texteditor zu verlassen.
Sobald Sie das getan haben, führen Sie das Bash-Skript mit dem folgenden Befehl aus:
bash test.sh
Dies erzeugt die folgende Ausgabe:
Ausgabe
Hallo Welt!
Tipp
Mit dem folgenden Befehl können Sie das Skript ausführbar machen. Dann können Sie es ohne den Bash-Befehl ausführen, indem Sie den Pfad angeben.
chmod 755 test.sh
Jetzt können Sie es über die Pfadangabe und den Skriptnamen aufrufen.
./test.sh
Benutzereingaben in einem Bash-Skript erhalten
Mit dem read-Befehl können Sie Tastatureingaben lesen und benutzerdefinierten Shell-Variablen Werte zuweisen. Dadurch wird alles gelesen, was Sie auf der Tastatur eingeben, und in einer Variablen gespeichert.
Erstellen Sie zunächst ein neues Bash-Skript mit dem Namen input.sh.
nano input.sh
Fügen Sie dann die Zeile hinzu: Diese Befehle zeigen eine Frage an, holen Eingaben vom Benutzer ein, geben den eingegebenen Wert aus und kombinieren ihn gleichzeitig mit einer Zeichenfolge.
#!/bin/bash
echo "Wie ist Dein Name?"
read name
echo "Mein Name ist $name"
Speichern und schließen Sie die Datei und führen Sie das Skript mit dem folgenden Befehl aus:
bash input.sh
Fordert einen Namen an und erzeugt die folgende Ausgabe:
Wie ist dein Name?
Tom
Mein Name ist Tom
Bash-if-Anweisungen sind sehr nützlich und ermöglichen es Ihnen, Entscheidungen in Bash-Skripten zu treffen. Mit der if-Anweisung können Sie basierend auf bestimmten Bedingungen entscheiden, ob ein Codeblock ausgeführt werden soll.
Die grundlegende Syntax der if-Anweisung lautet:
if [condition];
then
fi
Alles zwischen den Schlüsselwörtern then und fi wird nur ausgeführt, wenn die Bedingung wahr ist.
Erstellen Sie zum besseren Verständnis eine Datei if-test.sh.
nano if-test.sh
Hier wurde der Variablen x die Nummer 5 zugewiesen. Die Ausgabe ist eine „einstellige Zahl“, da der Wert von $x kleiner als 10 ist. Wenn Sie der Variablen x den Wert 15 zuweisen, wird als Ausgabe „eine Zahl mit 2 Ziffern“ ausgegeben.
Hinweis: Für den Bereich der „zweistelligen Zahl“ gibt es keine Obergrenze. Selbst wenn es sich um eine dreistellige Zahl handelt, wird eine „zweistellige Zahl“ zurückgegeben.
#!/bin/bash
x=5
if [ $x < 10 ];
then
echo "einstellige Zahl"
else
echo "zweistellige Zahl"
fi
Speichern und schließen Sie die Datei und führen Sie das Bash-Skript mit dem folgenden Befehl aus:
bash if-test.sh
Ausgabe:
einstellige Zahl
If-Anweisungen mit AND-Logik in Bash
Wenn Sie mehrere Bedingungen in Ihrem Bash-Skript überprüfen möchten, können Sie dies mithilfe von Logikgattern tun. Ein UND-Logikgatter gibt nur dann WAHR zurück, wenn beide durchgeführten Vergleiche WAHR sind. UND-Logik kann mit dem &&-Symbol definiert werden.
Erstellen Sie eine neue Datei logik-and.sh, um die UND-Logik zu testen.
nano logik-and.sh
Fügen Sie die folgenden Zeilen hinzu:
echo "Bitte Namen eingeben:"
read name
echo "Bitte Alter eingeben:"
read alter
echo "=========="
if [[ ( $name == "Tom" && $alter == "40" ) ]];
then
echo "Du hast Recht"
else
echo "Du hast KEIN Recht"
fi
Speichern und schließen Sie die Datei und führen Sie das Skript mit dem folgenden Befehl aus:
bash logik-and.sh
Das Skript fragt nach Name und Alter und verwendet eine UND-Logik, um die Eingaben zu vergleichen. Wenn beide Variablen mit den verglichenen Werten übereinstimmen (hier „Tom“ und „40“), lautet die Ausgabe „Sie haben Recht“. Andernfalls wird die Ausgabe „Sie haben nicht Recht“ lauten. Damit die if-Anweisung erfolgreich ist, müssen beide Werte mit der Variablen übereinstimmen.
Bitte Namen eingeben:
Tom
Bitte Alter eingeben:
40
==========
Du hast Recht
If-Anweisungen mit OR-Logik in Bash
OR-Bedingungen werden auch häufig in Bash-Skripten verwendet, um zu prüfen, ob mehrere Bedingungen unabhängig voneinander erfüllt sind. Ein OR-Gatter gibt einen TRUE-Wert zurück, wenn mindestens eine Voraussetzung erfüllt ist.
Erstellen Sie ein logik-or.sh-Skript mit dem folgenden Befehl:
nano logik-or.sh
Fügen Sie die folgenden Zeilen hinzu:
#!/bin/bash
echo "Gib eine Zahl zwischen 1 und 99 whelche durch 10 geteilt werden kann ein:"
read number
if [[ ( $number -eq 10 || $number -eq 20 || $number -eq 30 || $number -eq 40 || $number -eq 50 || $number -eq 60 || $number -eq 70 || $number -eq 80 || $number -eq 90 ) ]]
then
echo "Richtig"
else
echo "Falsch"
fi
Speichern und schließen Sie die Datei und führen Sie das Skript mit dem folgenden Befehl aus:
bash logik-or.sh
Das Skript fordert den Benutzer auf, eine beliebige Zahl zwischen 1 und 99 einzugeben (die durch 10 teilbar ist). Wenn der Wert eine durch 10 teilbare Zahl ist (z. B. 10 oder 20), ist die Ausgabe „True“. Andernfalls ist die Ausgabe „False“.
Gib eine Zahl zwischen 1 und 99 whelche durch 10 geteilt werden kann ein:
88
Falsch
Gib eine Zahl zwischen 1 und 99 whelche durch 10 geteilt werden kann ein:
40
Richtig
If-Else-Anweisungen in Bash
If-Else-Anweisungen ermöglichen es dem Shell-Interpreter, die richtige Entscheidung auf der Grundlage mehrerer Bedingungen zu treffen. Wenn die Bedingung in der if-Anweisung nicht erfüllt ist, dann wird ein Codeblock zwischen else und fi ausgeführt. Beachte, wenn die Bedingung der if-Anweisung erfüllt ist, wird der Code im else-Block nicht ausgeführt.
Erstelle eine Datei if-else.sh mit folgendem Befehl:
nano if-else.sh
Fügen Sie die folgenden Zeilen hinzu:
#!/bin/bash
x=10
y=20
if [ $x -gt $y ]
then
echo "x ist groesser als y"
else
echo "x ist kleiner als y"
fi
Speichern und schließen Sie die Datei. Führen Sie dann das Skript mit dem folgenden Befehl aus:
bash if-else.sh
Ausgabe:
x ist kleiner als y