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.
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.