Bash Case Command

Bash Case Command

Der Befehl bash case wird verwendet, um ordnungsgemäße Maßnahmen zu ergreifen, indem Daten wie bei der Anweisung verglichen werden. Es funktioniert wie eine Switch-Case-Anweisung anderer Standardprogrammiersprachen. Dieser Befehl beginnt mit der Anweisung "Fall" und schließt durch "ESAC" -Schürtung. Im Fallbefehl wird keine Break -Anweisung verwendet, und die Doppelklasse (;;) ist erforderlich. Dieser Befehl erweitert den Ausdruck und versucht, mit dem angegebenen Muster übereinzustimmen, und der Exit -Status -Code dieses Befehls ist Null, wenn keine Übereinstimmung gefunden wird. Einige häufige Beispiele für Fallaussagen sind in diesem Tutorial gezeigt.

Beispiel 1: Einfache Fallanweisung

Ein einzelner bedingter Ausdruck wird im Bash -Case -Befehl verwendet, um die Ausgabe basierend auf der Matching -Bedingung zu generieren. Erstellen Sie eine Bash -Datei mit dem Namen Fall 1.Sch mit dem folgenden Bash -Skript. Das Skript nimmt einen String -Wert und stimmt mit dem Wert mit jedem Ausdruck überein. Das folgende Skript erzeugt "No Entry gefunden", wenn kein Übereinstimmungsausdruck vorliegt,
Fall 1.Sch

#!/Bin/Bash
Echo "Geben Sie Ihren Namen ein"
Name lesen
Fall $ Name in
Ja,)
echo "Deine Lieblingsfarbe ist blau" ;;
Fahmida)
Echo "Dein Lieblingsgetränk ist Sprite" ;;
*)
echo "kein Eintrag gefunden" ;;
ESAC

Führen Sie das Skript aus.

$ bash case1.Sch

Ausgang:

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

Beispiel-2: Mehrfachfallanweisung mit Pipe

Mehrere Fallausdrücke können im Bash -Skript angewendet werden, um verschiedene Arten von Anweisungen auszuführen. Pipe (|) -Symbol kann verwendet werden, um die mehreren Ausdrücke zuzuweisen. Erstellen Sie eine Bash -Datei mit dem Namen Fall2.Sch mit dem folgenden Skript. Nach dem Ausführen des Skript.
Fall2.Sch

#!/Bin/Bash
Echo "Geben Sie Ihre ID -Nummer ein"
ID lesen
Fall $ id in
65341)
echo "deine Position ist 1st" ;;
97564 | 88453)
echo "deine Position ist 2." ;;
45087)
echo "deine Position ist 3." ;;
*)
echo "ungültige ID" ;;
ESAC

Führen Sie das Skript aus .

$ bash case2.Sch

Ausgang:

Dieses Skript funktioniert auch wie das vorherige Beispiel. Der einzige Unterschied besteht darin, dass die mehreren Expressionswerte auf einen einzelnen Ausgang getestet werden.

Beispiel-3: Wie man aus dem Fall/ESAC-Anweisungsblock beendet

Wenn der Befehl bash case unter einer unendlichen Schleife verwendet wird, muss der Befehl exit verwendet, um die Schleife zu beenden. Dieses Beispiel zeigt, wie diese Art der Aufgabe erledigt werden kann. Erstellen Sie eine Textdatei mit dem Namen Fall3.Sch mit dem folgenden Skript. Dieses Skript nimmt eine beliebige Zahl von 1 bis 3 als Eingabe an. Wenn die Eingabe 1 ist, werden zwei Zahlen hinzugefügt. Wenn die Eingabe 2 ist, werden zwei Zahlen subtrahiert und wenn die Eingangsnummer 3 ist, werden zwei Zahlen multipliziert. Die Ausgabe ist "ungültiger Eintrag", wenn die Eingangsnummer mehr als 3 oder weniger 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 Sie Ans
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ültiger Eintrag"
ESAC
Erledigt

Führen Sie das Skript aus.

$ bash case3.Sch

Ausgang:

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

Beispiel-4: Überprüfen Sie das Argumentwert der leeren Befehlszeile

Die Variable der Befehlszeilenargument kann in der Bash -Fallanweisung verwendet werden. 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 case4.Sch

Ausgang:

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

Beispiel-5: Mehrfachfallanweisung basierend auf Benutzereingaben

Erstellen Sie eine Bash -Datei mit dem Namen Fall 5.Sch mit dem folgenden Skript. Das Skript nimmt den monatlichen Namen als Benutzereingabe an. Wenn der monatliche Name mit einem Fallwert übereinstimmt, wird eine bestimmte Textnachricht in die variable Nachricht zugewiesen. Eingabwert muss der Name des vollen Monats oder drei Zeichenmonatenname sein.

Fall 5.Sch

#!/Bin/Bash
Echo "Geben Sie den Namen eines Monats ein"
Monat lesen
Fall $ Monat in
Januar | Jan*)
Message = "21. Februar ist unser internationaler Muttertag."
;;
Februar | Feb*)
Message = "21. Februar ist unser internationaler Muttertag."
;;
März | mar*)
Message = "9. März ist der Weltnierentag."
;;
April | Apr*)
Message = "Der aktuelle Monat ist nicht Februar"
;;
Mai | Mai*)
Message = "Der aktuelle Monat ist Februar"
;;
Juni | Jun*)
Message = "Der aktuelle Monat ist Februar"
;;
*)
Message = "Keine übereinstimmenden Informationen gefunden"
;;
ESAC
Echo $ message

Führen Sie das Skript aus.

$ bash case5.Sch

Ausgang:

Die folgende Ausgabe wird für den Eingangswert "March" oder "Mar" angezeigt.

Beispiel-6: Überprüfen Sie die Variable in der Bash-Fallanweisung

Jeder Zeichenfolgewert kann gedruckt werden, indem der Wert der Befehlszeilenargumentvariablen überprüft wird. Erstellen Sie eine Textdatei mit dem Namen Fall6.Sch mit dem folgenden 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“ gedruckt.

Fall6.Sch

#!/Bin/Bash
Fall 1 $ in
("") echo "Ich mag Bash -Programmierung";
ESAC

Führen Sie das Skript aus.

$ bash case6.Sch

Ausgang:

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

Abschluss

In diesem Artikel werden verschiedene Verwendungen des Bash -Fallbefehls angezeigt. Wenn die Leser diese Beispiele ordnungsgemäß üben, ist es für sie einfacher, viele Bash -Programmierprobleme zu lösen.