Ratgeber für Anfänger

Bash-Scripting-Tutorial für Anfänger

Bash-Scripting-Tutorial für Anfänger

Wenn Sie mit Linux-Systemen beginnen, werden Begriffe wie „Shell-Scripting“ oder „Bash-Scripting“” kann durchaus üblich sein - aber was bedeuten sie?? Bevor wir ins Detail gehen, kann Ihnen das Erlernen von Bash-Skripten helfen, Zeit bei der Ausführung und Durchführung verschiedener Systemaufgaben zu sparen, die Linux-Befehlszeile (Terminal) besser zu verstehen und mehrere Systemaufgaben zu automatisieren.

Was ist Bash?

Bash, ein Akronym für "Bourne-Again-Shell", ist ein Unix-Shell- oder Befehlssprachen-Interpreter für das GNU-Betriebssystem. Es war die wichtigste Shell für Linux-Distributionen und Apple macOS-Releases vor macOS Catalina. Bash ist auch für Windows 10 über das Windows-Subsystem für Linux verfügbar.

Bash wird normalerweise in einem Textfenster ausgeführt, das allgemein als Terminal bekannt ist, in das Benutzer Befehle eingeben, um verschiedene Aufgaben auszuführen. Bash kann auch Befehle ausführen, die in eine Datei geschrieben wurden, eine Methode, die als . bezeichnet wird „Bash-Scripting“.”

Unterschied zwischen Bash-Scripting und Shell-Scripting

Shell-Scripting und Bash-Scripting sind nicht dasselbe. Beim Bash-Scripting verwenden Sie explizit die Bash-Shell. Auf der anderen Seite kann Shell-Skripting ein ziemlich weit gefasster Begriff sein, da wir andere Shells als Bash zur Verfügung haben. Einige der gebräuchlichsten sind Korn (ksh), C-Shell (csh), Z-Shell (zsh) und die Bash-Shell (sh). Es wäre jedoch keine Überraschung, wenn Leute, die Bash-Skripting und Shell-Skripting verwenden, dasselbe bedeuten würden. Unser Beitrag zu den Top 6 Open Source Shells für Linux enthält eine detaillierte Beschreibung dieser Shells.

In diesem Beitrag werden wir uns das Bash-Skripting ansehen. Standardmäßig verwenden viele verfügbare Linux-Distributionen die Bash-Shell. Schauen Sie sich unseren Beitrag zu den 6 besten Linux-Distributionen für Anfänger an. Um die Shell zu bestätigen, die Sie in Ihrer aktuellen Linux-Distribution verwenden, führen Sie den Befehl auf dem Terminal aus.

echo $SHELL

Schale

Aus dem obigen Bild können Sie sehen, dass der Standardinterpreter in meinem System bash ist. Derzeit verwende ich Ubuntu 20.04 LTS. Lass uns eintauchen!

Bash-Skripte verstehen

Bash-Skripte sind Textdateien mit Bash-Befehlen, die ausgeführt werden, um verschiedene Aufgaben auszuführen. Um diese Skripte zu schreiben, benötigen Sie nur einen einfachen Texteditor wie gedit, leaf pad, vim, nano und vieles mehr. Bitte denken Sie daran, Ihre Skripte mit a . zu speichern .Sch Erweiterung und als Nur-Text und nicht als Rich-Text. Einer meiner Lieblingseditoren, den ich zum Schreiben von Skripten verwende, ist der Nano-Editor.

Benennen, Zuweisen von Berechtigungen und Ausführen eines Bash-Skripts

Stellen Sie wie oben erklärt sicher, dass Sie die .sh-Erweiterung für Ihre Bash-Skripte. Zum Beispiel können Sie ein Skript mit dem Namen fosslinux_backup.Sch. Es wäre jedoch am besten, wenn Sie bei der Benennung Ihrer Skripte vorsichtig wären. Die meisten Leute speichern beispielsweise die meisten ihrer Skripte gerne als „Test“.„Die meisten wissen nicht, dass es einen in Unix integrierten Befehl namens test gibt, der Dateitypen überprüft und Werte vergleicht. Mit dem Befehl what können Sie prüfen, ob ein Programm mit dem gleichen Namen wie Ihr Skript vorhanden ist, um Programmkonflikte zu vermeiden.

welcher [Befehl] e.g welcher test

Welcher Befehl

Aus der obigen Ausgabe können wir sehen, dass test bereits ein eingebauter Befehl ist. Um Konflikte zwischen Programmen zu vermeiden, nenne ich daher keines meiner Skripte als name "Prüfung.”

Um das Skript für jeden Benutzer ausführbar zu machen, verwenden Sie den folgenden Befehl:

chmod +x [Skript.Sch]

Um das Skript für den aktuellen Benutzer ausführbar zu machen, verwenden Sie den folgenden Befehl:

chmod u+x [Skript.Sch]

Führen Sie nun den folgenden Befehl aus, um das Skript auszuführen:

./[Skriptname]

Mit der obigen Methode werden Sie feststellen, dass Sie die CD Befehl, um in das Verzeichnis zu wechseln, das das Skript enthält, oder den Pfad zum Skript zu übergeben. Es gibt jedoch einen Workaround dafür. Speichern Sie Ihre Skripte im Behälter Verzeichnis im Home-Verzeichnis vorhanden.

Mit den letzten Updates kommen die meisten Distributionen nicht mit dem Behälter Ordner standardmäßig. Sie müssen es daher manuell erstellen. Wenn Sie Ihre Skripte in diesem Ordner ablegen, können Sie das Skript ausführen, indem Sie seinen Namen auf dem Terminal eingeben, ohne die CD und ./ Befehle.

Bash-Scripting-Richtlinien

Bevor Sie Ihr erstes Skript schreiben, gibt es einige Richtlinien, die Sie beim Schreiben von Skripten verstehen müssen.

Das #!/bin/bash (Hash-Bang Hack)-Anweisung ist der Pfad zu der Shell, die wir verwenden werden. Wenn Sie eine andere Shell verwenden, müssen Sie diesen Pfad bearbeiten. Wir verstehen, dass alle Kommentare mit dem beginnen # Symbol. Wenn jedoch mit a (!) Markierung im Hash-Bang Hack, wird das Skript gezwungen, mit der Shell, auf die diese Zeile zeigt, ausgeführt zu werden. In unserem Fall ist es die Bash-Shell.

Dein erstes Bash-Skript

Wie die meisten Programmiersprachen werden wir ein Skript schreiben, das die "Hallo Welt" Anweisung bei Ausführung. Öffnen Sie Ihren bevorzugten Texteditor und fügen Sie die folgenden Befehle ein. Speichern Sie die Textdatei unter fossHelloWorld.Sch oder ein anderer Name, der kein eingebauter Befehl ist.

#!/bin/bash #Dieses Skript gibt 'Hello World' auf dem Terminal-Echo "Hello World" aus

Nachdem Sie die Datei gespeichert haben, machen Sie sie ausführbar, indem Sie den folgenden Befehl ausführen:

chmod +x fossHelloWorld.Sch

Führen Sie es nun mit dem folgenden Befehl aus:

./fossHelloWorld.Sch

Erstes Skript

Das obige Skript hat nur drei Zeilen. Der erste ist der Hash-Bang-Hack, den wir oben besprochen haben, der zweite ist ein Kommentar und der dritte ist der Befehl, der ausgeführt wird. Beachten Sie, dass Kommentare nie ausgeführt werden.

Schauen wir uns andere Bash-Scripting-Funktionen an, die Sie verwenden können.

Echo-Befehl

Der Echo-Befehl wird verwendet, um die Ausgabe über die Linux-Befehlszeile oder das Terminal zu drucken. Wenn Sie Entwickler sind und schon einmal mit PHP gearbeitet haben, müssen Sie auch auf diesen Befehl gestoßen sein. Lassen Sie uns ein kleines Bash-Skript schreiben, um zu demonstrieren, wie dieser Befehl funktioniert.

#!/bin/bash #Lass uns die erste Zeile ausgeben echo "Das ist Fosslinux.com - Mit einer neuen Zeile" #Geben wir die zweite Anweisung ohne eine neue Zeile aus echo -n "Das ist Fosslinux - Keine neue Zeile"

Speichern Sie Ihr Skript, weisen Sie die erforderlichen Berechtigungen zu und führen Sie es aus.

Bash-Echo

Um den Code zu verstehen, gibt der erste echo-Befehl eine Anweisung aus und geht in die nächste Zeile. Der zweite echo-Befehl hat die -nein Argument, das verhindert, dass das Skript zur nächsten Zeile geht. Sie können viele andere Optionen mit dem Echo-Befehl verwenden, einschließlich Variablen, wie wir unten sehen werden.

Variablen

Variablen sind ein üblicher und notwendiger Bestandteil jeder Programmiersprache. Man kann Bash-Variablen auf verschiedene Weise deklarieren. Wenn Sie einer Variablen einen Wert zuweisen, müssen Sie keine Symbole verwenden. Wenn Sie jedoch den Wert der Variablen aufrufen, müssen Sie die $ Zeichen am Anfang der Variablen variable.

Sie können Variablen auf dem Terminal oder als Skripte verwenden. Führen Sie die folgenden Befehle auf Ihrem Terminal aus.

myWebsite = "Fosslinux.com" echo $meineWebsite

Verwenden von Variablen auf dem Terminal

Lassen Sie uns nun ein Bash-Skript erstellen, das zwei Eingaben vom Benutzer entgegennimmt und in Variablen speichert stores $x und $y. Das Skript prüft dann, ob die beiden Werte gleich sind oder nicht.

#!/bin/bash echo "Geben Sie die erste Zahl ein" read a echo "Geben Sie die zweite Zahl ein" read b if [[ $a -eq $b ]] then echo "Zahlen sind gleich" else echo "Zahlen sind nicht gleich" fi

Speichern Sie das Skript und führen Sie es aus. In der Abbildung unten sehen Sie, dass wir verschiedene Werte eingegeben haben und das Skript überprüfen konnte, ob sie gleich sind oder nicht.

Bash-Variablen

Schauen wir uns nun den Code genauer an. Die ersten beiden Echo-Anweisungen fordern den Benutzer auf, die erste und zweite Zahl einzugeben. Das lesen Befehl wartet darauf, dass der Benutzer eine Zahl eingibt und speichert sie in der angegebenen Variablen. In unserem Fall ist das ein und b. Wir haben dann eine if-Anweisung, die prüft, ob die beiden Werte gleich sind oder nicht.

Bedingte Anweisung

In jeder Programmiersprache steuern bedingte Anweisungen den Ablauf eines Programms. Ein Stück Code wird nur ausgeführt, wenn eine bestimmte Bedingung erfüllt ist. Zu den häufigsten bedingten Anweisungen gehören „wenn-dann-sonst“ und „Fall“.” Unten ist die grundlegende Syntax der if-then-else-Anweisung.

wenn [[ Bedingung ]] dann  sonst  fi

Sehen Sie sich das folgende Skript an, das die bedingte Anweisung „wenn-dann-sonst“ verwendet.

#!/bin/bash echo "Geben Sie Ihr Alter ein" lesen Sie das Alter if ((Alter > 18 )) then echo "Sie können zur Party gehen" else echo "Sie sind nicht berechtigt, zur Party zu gehen" fi

Bedingte Bash-Anweisungen

Gehen wir das Skript oben durch. Wir haben das Echo Anweisung, die Benutzer auffordert, ihre Altersnummer einzugeben. Das lesen -Anweisung speichert das eingegebene Alter in einer Variablen „Alter“.” Wir haben dann eine if-then-else bedingte Anweisung, die prüft, ob das Alter größer als 18 ist, bevor wir den Benutzer anweisen.

Schleifen

Schleifen werden häufig verwendet, wenn Sie einen Codeabschnitt mehrmals ausführen möchten. Wenn ich zum Beispiel 1000 Zeilen der Anweisung „Willkommen bei Fosslinux“ wiedergeben möchte, benötige ich 1000 Echo-Anweisungen. Bei Schleifen muss ich jedoch nur angeben, wie oft die Anweisung auf dem Terminal wiederholt oder gedruckt werden soll. Bash unterstützt drei Arten von Loops; For-Schleife, While-Schleife und die Until-Schleife. Schauen wir uns jeden von ihnen an.

Eine For-Schleife wird verwendet, um eine Liste von angegebenen Daten oder ein Array zu durchlaufen. Unten ist die grundlegende Syntax der Bash For-Schleife;

für Wert in 1 2 3 4 5… N do Anweisung1 Anweisung2 Anweisung-N erledigt

oder,

for VALUE in file1 file2 file3 do Anweisung1 auf $VALUE Anweisung2 Anweisung-N fertig

Schauen Sie sich das Skript unten an. Es durchläuft die angegebenen Wochentage und druckt sie Zeile für Zeile auf dem Terminal aus.

#Lese einen Wochentagnamen in jeder Iteration der Schleife für Tag in Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag do echo "$day" done

Speichern wir das Skript unter ForLoop.Sch und führe es aus. Unten ist ein Screenshot der Ausgabe.

Für Schleife

Das ist nur ein einfaches Beispiel dafür, was Sie mit der For-Schleife machen können. Sie können es auch mit bedingten Anweisungen kombinieren, um eine bestimmte Aufgabe abzuschließen.

Die While-Schleife führt eine bestimmte Aufgabe aus, während eine bestimmte Bedingung Wahr bleibt. In jeder Iteration überprüft die Schleife zuerst die Bedingung, bevor die Anweisungen ausgeführt werden. Wenn die Bedingung False ist, wird die Schleife beendet. Die grundlegende Syntax der While-Schleife der Bash lautet wie folgt:

während [BEDINGUNG] [BEFEHLE] erledigt ist

Zum Beispiel können wir ein Skript haben, das die Anweisung ausgibt „Willkommen bei FOSSLINUX.KOM“ 20 mal, bis eine Variable X auf 20 . gesetzt wird. Versuchen wir das praktisch umzusetzen. Schauen Sie sich das Skript unten an.

#!/bin/bash x=1 while [ $x -le 20 ] do echo "Willkommen bei FOSSLINUX.COM" x=$(( $x + 1 )) fertig

Speichern wir das Skript unter While-Schleife.Sch und führe es aus. Unten ist ein Screenshot der Ausgabe.

While-Schleife

Werfen wir einen Blick auf das obige Skript While-Schleife. Wir deklarieren zuerst eine Variable X und geben ihr den Wert 1. Wir erstellen dann eine While-Anweisung, die die Anweisung „Welcome to FOSSLINUX“ ausgibt.COM” während X kleiner als 20 . ist. Schließlich inkrementieren wir X nach jeder Iteration um eins.

Die Bash-Bis-Schleifen werden verwendet, um eine Reihe von Anweisungen oder Befehlen auszuführen, solange die eingestellte Bedingung als falsch ausgewertet wird. Unten ist die grundlegende Syntax der Until-Schleife.

bis [BEDINGUNG] [EINFÜHRUNGEN/BEFEHLE] erledigt ist

Ähnlich wie die While-Schleife wertet die Until-Schleife zuerst die gesetzte Bedingung aus, bevor die Anweisungen oder Befehle ausgeführt werden. Wenn die Bedingung als falsch ausgewertet wird, werden Anweisungen ausgeführt. Die Schleife wird beendet, wenn die Bedingung wahr ist. Schauen Sie sich das Beispiel unten an.

#!/bin/bash count=0 bis [ $count -gt 5 ] echo Counter: $count ((count++)) done

Nachdem wir das obige Skript gespeichert und ausgeführt haben, erhalten wir die folgende Ausgabe:

Bis Loop

Die obigen Skripte erstellen zuerst eine Variablenanzahl und setzen sie auf null (0). Das ist die Bedingung, die den Ablauf unseres Programms steuert. Die Until-Schleife prüft, ob der Zählwert größer als 5 . ist. Ist dies nicht der Fall, werden die übergebenen Anweisungen gedruckt instructions. Wenn der Wert jedoch größer als 5 ist, wird die Schleife sofort beendet. Zuletzt erhöhen wir den Zählwert um 1 (count++).

Bash-Funktionen

In der Programmierung und Skripterstellung werden Funktionen verwendet, um einen wiederverwendbaren Code zu speichern, der zum Ausführen einer bestimmten Aufgabe benötigt wird. Wenn Sie also ähnliche Befehle haben, die Sie an verschiedenen Stellen in Ihrem Skript ausführen möchten, müssen Sie diese Befehle nicht wiederholt schreiben. Schließen Sie sie in eine Funktion ein und führen Sie stattdessen die Funktion aus.
Unten ist die grundlegende Syntax der Bash-Funktion.

Funktionsname ()    

oder,

Funktion Funktionsname    

Lassen Sie uns ein einfaches Skript erstellen, das Funktionen verwendet. Wir erstellen zunächst eine Funktion namens „myFunction“, die beim Aufruf die Anweisung „Hello I am the first function“ ausgibt. Die zweite Funktion, „myCities“, ist etwas fortgeschritten, da sie übergebene Argumente benötigt. Die Argumente werden nach dem Aufruf des Funktionsnamens angegeben. Sie sind in der Funktion als $1 . zugänglich.

#!/bin/bash myFunction ()  echo "Hallo, ich bin die erste Funktion" echo "Hallo, ich bin die erste Funktion" echo  echo "Das ist die zweite Funktion" function myCities ()  echo Hallo $1  myFunction myCities Washington,D.C myCities Phoenix

Nach dem Speichern und Ausführen des Skripts erhalten wir die folgende Ausgabe.

Funktionen

Bash-Menüs

Beim Schreiben eines Skripts zur Ausführung einer erweiterten Aufgabe muss der Benutzer möglicherweise eine einzelne Option aus mehreren auf dem Terminal angezeigten Optionen auswählen. Um dies zu erreichen, verwenden wir die bash wählen Befehl.

Es erstellt ein einfaches Menüskript, das die Benutzer auffordert, ihre bevorzugten Linux-Distributionen aus einer Liste auszuwählen. Schauen Sie sich das Skript unten an.

#!/bin/bash #Drucknachricht für den Benutzer echo "Wählen Sie Ihre bevorzugte Linux-Distribution" Wählen Sie die Distribution in Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali do #Drucken Sie den ausgewählten Wert if [[ $distro == "Exit" ]] then exit 0 else echo "Ausgewählte Linux-Distribution ist $distro" fi done

Speichern wir das Skript als Menü.sch und führe es aus. Wir erhalten die Ausgabe unten.

Bash-Menüs

Im obigen Skript haben wir eine Liste von Seven Linux-Distributionen, aus denen der Benutzer eine auswählen wird. Nachdem sie eine Auswahl getroffen haben, wird diese in der Variablen gespeichert verteilen und später gedruckt, indem es mit der Zeichenfolge verkettet wird „Ausgewählte Linux-Distribution ist.” Bash-Auswahlmenüs können sehr nützlich sein, insbesondere wenn Sie mehrere Skripte haben, die verschiedene Aufgaben ausführen, und man dasjenige auswählen muss, das ausgeführt werden soll.

Arithmetik

Jede Programmiersprache unterstützt die Ausführung arithmetischer Operationen und Bash-Scripting ist keine Ausnahme. Wie wir arithmetische Operationen durchführen, ist jedoch etwas anders. Im Folgenden finden Sie eine der Möglichkeiten, wie Sie arithmetische Operationen in bash ausführen können. Wir werden uns vier Arten von arithmetischen Operationen ansehen - Summe, Division und Multiplikation.

#!/bin/bash # Berechne das Summenergebnis=$((70+15)) # Drucken Sie den Summenwert echo "sum = $result" # Berechnen Sie das Divisionsergebnis=$((100/25)) # Drucken Sie den Divisionswert echo "division = $result" #Multiplikationsergebnis berechnen=$((15*15)) echo "Multiplikation = $result"

Speichern wir das obige Skript als Arithmetik.sch und führe es aus. Wir erhalten die Ausgabe unten.

Arithmetik

Fazit

Dies ist eine vollständige Anleitung für Anfänger, um mit Bash-Skripting zu beginnen. Bash bietet jedoch noch mehr als das, was in diesem Tutorial behandelt wird. Einer der Orte, die ich empfehlen würde, um Ihre Fähigkeiten zu verbessern, ist das Bash-Referenzhandbuch von GNU. Wenn Sie Probleme haben oder diesen Beitrag kommentieren, können Sie gerne auf die Kommentare unten klicken.

So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...