Linux-Befehle

BASH-Fallbefehl

BASH-Fallbefehl

Der Bash-Case-Befehl wird verwendet, um durch den Vergleich von Daten wie der if-Anweisung geeignete Maßnahmen zu ergreifen. Es funktioniert wie eine Switch-Case-Anweisung anderer Standard-Programmiersprachen. Dieser Befehl beginnt mit der 'case'-Anweisung und endet mit der 'esac'-Anweisung. Im case-Befehl wird keine break-Anweisung verwendet und eine doppelte Klammer (;;) ist erforderlich, um die Anweisung(en) für eine bestimmte Übereinstimmung zu erwähnen. Dieser Befehl erweitert den Ausdruck und versucht, mit dem angegebenen Muster abzugleichen, und der Exit-Statuscode dieses Befehls ist Null, wenn keine Übereinstimmung gefunden wird. Einige gängige Beispiele für case-Anweisungen werden in diesem Tutorial gezeigt.

Beispiel-1: einfache Fallaussage

Ein einzelner bedingter Ausdruck wird im Befehl bash case verwendet, um die Ausgabe basierend auf der übereinstimmenden Bedingung zu generieren. Erstellen Sie eine Bash-Datei mit dem Namen Fall 1.Sch mit dem folgenden Bash-Skript. Das Skript nimmt einen Zeichenfolgenwert und vergleicht den Wert mit jedem Ausdruck. Das folgende Skript generiert „Kein Eintrag gefunden“, wenn kein passender Ausdruck vorhanden ist,
Fall 1.Sch

#!/bin/bash
echo "Geben Sie Ihren Namen ein"
Namen lesen
Fall $name in
Jamin)
echo "Ihre Lieblingsfarbe ist Blau" ;;
Fahmida)
echo "Dein Lieblingsgetränk ist Sprite" ;;
*)
echo "Kein Eintrag gefunden" ;;
esac

Führen Sie das Skript aus.

$ bash Fall1.Sch

Ausgabe:

Die Datei wird hier mit gültiger und ungültiger Eingabe ausgeführt, um die Ausgabe zu testen.

Beispiel-2: multiple case-Anweisung mit Pipe

Im Bash-Skript können mehrere case-Ausdrücke angewendet werden, um verschiedene Arten von Anweisungen auszuführen. Das Pipe-Symbol ( | ) kann verwendet werden, um die mehreren Ausdrücke zuzuweisen. Erstellen Sie eine Bash-Datei mit dem Namen Fall2.Sch mit folgendem Skript. Wenn nach dem Ausführen des Skripts der Eingabewert mit einem Ausdruck übereinstimmt, wird der entsprechende Textwert gedruckt.
Fall2.Sch

#!/bin/bash
echo "Geben Sie Ihre ID-Nummer ein"
ID lesen
Fall $ID in
65341)
echo "Ihre Position ist 1." ;;
97564|88453)
echo "Ihre Position ist 2." ;;
45087)
echo "Ihre Position ist 3." ;;
*)
echo "Ungültige ID" ;;
esac

Führen Sie das Skript aus .

$ bash Fall2.Sch

Ausgabe:

Dieses Skript funktioniert auch wie das vorherige Beispiel. Der einzige Unterschied besteht darin, dass die Mehrfachausdruckswerte für eine einzelne Ausgabe getestet werden.

Beispiel-3: So beenden Sie den case/esac-Anweisungsblock

Wenn der Befehl bash case in einer Endlosschleife verwendet wird, muss der Befehl exit zum Beenden der Schleife verwendet werden. Dieses Beispiel zeigt, wie diese Aufgabentypen ausgeführt werden können. Erstellen Sie eine Textdatei mit dem Namen Fall3.Sch mit folgendem Skript. Dieses Skript nimmt eine beliebige Zahl von 1 bis 3 als Eingabe an. Wenn die Eingabe 1 ist, werden zwei Zahlen addiert, wenn die Eingabe 2 ist, werden zwei Zahlen subtrahiert und wenn die Eingabezahl 3 ist, werden zwei Zahlen multipliziert. Die Ausgabe ist „Ungültige Eingabe“, wenn die Eingabenummer größer als 3 oder kleiner als 1 oder leer ist.
Fall3.Sch

#!/bin/bash
#!/bin/bash
während(wahr)
tun
a=8
b=4
((x=$a+$b))
((y=$a-$b))
((z=$a*$b))
echo "Typ 1 oder 2 oder 3"
lesen und
Fall $ans in
1) echo "Die Summe von $a und $b ist $x & exit" ;;
2) echo "Die Subtraktion von $a und $b ist $y & exit" ;;
3) echo "Die Multiplikation von $a und $b ist $z & exit" ;;
*) echo "Ungültige Eingabe"
esac
getan

Führen Sie das Skript aus.

$ bash Fall3.Sch

Ausgabe:

Das Skript wird so lange ausgeführt, bis Strg+C gedrückt wird.

Beispiel-4: Überprüfen des leeren Befehlszeilenargumentwerts

Die Befehlszeilenargumentvariable kann in der bash case-Anweisung verwendet werden used. Erstellen Sie eine Datei mit dem Namen Fall4.Sch mit dem folgenden Skript, das den Wert der zweiten Argumentvariablen überprüft.

#!/bin/bash
Fall "$2" in
"Ubuntu")
echo "Das zweite Argument ist $2."
;;
"CentOS")
echo "Das zweite Argument ist $2."
;;
"")
echo "Das zweite Argument ist leer."
;;
esac

Führen Sie das Skript aus.

$ bash Fall4.Sch

Ausgabe:

Hier wird das Skript zum ersten Mal ohne einen zweiten Befehlszeilenargumentwert ausgeführt und die Ausgabe zeigt „Das zweite Argument ist leer“. Wenn das Skript zum zweiten Mal mit einem zweiten Befehlszeilenargumentwert ausgeführt wird, wird keine Ausgabe angezeigt.

Beispiel-5: Multiple Case-Anweisung basierend auf Benutzereingaben

Erstellen Sie eine Bash-Datei mit dem Namen Fall5.Sch mit folgendem Skript. Das Skript nimmt den Monatsnamen als Benutzereingabe an. Wenn der Monatsname mit einem beliebigen Fallwert übereinstimmt, wird der Variablen Nachricht eine bestimmte Textnachricht zugewiesen. Der Eingabewert muss der vollständige Monatsname oder der dreistellige Monatsname sein.

Fall5.Sch

#!/bin/bash
echo "Geben Sie den Namen eines Monats ein"
Monat lesen
Fall $Monat in
Januar|Januar*)
Message=" Der 21. Februar ist unser internationaler Muttertag."
;;
Februar|Feb*)
Message=" Der 21. Februar ist unser internationaler Muttertag."
;;
März|März*)
Message="9. März ist der Weltnierentag."
;;
April|April*)
Message="Der aktuelle Monat ist nicht Februar"
;;
Mai|Mai*)
Message="Der aktuelle Monat ist Februar"
;;
Juni|Juni*)
Message="Der aktuelle Monat ist Februar"
;;
*)
Message="Keine passenden Informationen gefunden"
;;
esac
echo $Nachricht

Führen Sie das Skript aus.

$ Bash-Fall5.Sch

Ausgabe:

Für den Eingangswert erscheint die folgende Ausgabe, 'March' oder 'Mar'.

Beispiel-6: Variable in der Bash-Case-Anweisung prüfen

Jeder String-Wert kann gedruckt werden, indem der Wert der Befehlszeilenargumentvariablen überprüft wird. Erstellen Sie eine Textdatei mit dem Namen Fall6.Sch mit folgendem Skript. In diesem Beispiel wird der Wert der ersten Argumentvariablen überprüft und wenn der Wert leer ist, wird eine Zeichenfolge „Ich mag Bash-Programmierung“ ausgegeben.

Fall6.Sch

#!/bin/bash
Fall $1 in
("") echo "Ich mag Bash-Programmierung";
esac

Führen Sie das Skript aus.

$ bash Fall6.Sch

Ausgabe:

Dieses Skript wird mit und ohne erste Argumente ausgeführt. Es erfolgt keine Ausgabe, wenn keine Befehlszeilenargumentvariable übergeben wird.

Fazit

In diesem Artikel werden verschiedene Verwendungen des Befehls bash case gezeigt. Wenn die Leser diese Beispiele richtig üben, wird es für sie einfacher sein, viele Probleme der Bash-Programmierung zu lösen.

Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...