Spezifische Beispiele in diesem Artikel sind:
Allgemeine Syntax von Bash, wenn elif sonst
Unten ist die allgemeine Syntax von WENN Elif Und ANDERS in Bash:
Wenn Zustand zu Test; Dann
Code-zu-Execute-1
Elif Next-Condition-to-Test; Dann
Code-zu-Execute-2
Elif Next-Condition-to-Test; Dann
Code-zu-Execute-2
anders
Code-zu-Execute-2
fi
HINWEIS: In der obigen allgemeinen Syntax können Sie Null, eins oder mehrere enthalten Elif Bedingungen im Codeblock und der ANDERS Bedingung ist optional.
Die Konstruktion der tatsächlichen Bedingungen hat viele Optionen, da die Syntax von Bash so viele verschiedene Funktionen und Optionen enthält, aber eine sehr grundlegende Vorlage für Ihre Bash -Skripte wäre die Verwendung der Verwendung [[ Doppel -Brack -Syntax, wie im Beispiel für allgemeine Syntax und spezifische Beispiele unten gezeigt.
wenn [[[Kondition zu Test]]; Dann
Code-zu-Execute-1
ELIF [[NEXT-Condition-to-Test]]; Dann
Code-zu-Execute-2
ELIF [[NEXT-Condition-to-Test]]; Dann
Code-zu-Execute-2
anders
Code-zu-Execute-2
fi
HINWEIS Außerdem: Abhängig von Ihrer Code -Formatierungs -Ästhetik mögen Sie möglicherweise die dann in derselben Zeile der Bedingungen oder Sie können sich entscheiden, sie in die nächste Zeile zu setzen, wie unten gezeigt:
Wenn [[[Kondition]]]]
Dann
Code-zu-Execute-1
ELIF [[Next-Condition-to-Test]]]
Dann
Code-zu-Execute-2
ELIF [[Next-Condition-to-Test]]]
Dann
Code-zu-Execute-2
anders
Code-zu-Execute-2
fi
Zeigen wir nun spezifische Beispiele für die grundlegenden Variationen der WENN Elif Und ANDERS Bedingungen in Arbeitsbeispielen unten.
Beispiel 1: Wenn Anweisung in Bash zur String -Gleichheit
#!/Bin/Bash
Lesen Sie -p "Geben Sie ein Übereinstimmungswort ein:" user_input
if [[$ user_input == "Hallo"]]; Dann
Echo "Hallo zu dir auch"
fi
In diesem obigen Beispiel verwenden wir die Basic WENN Bedingung mit einem einzelnen Test der Stringgleichheit und drucken Sie dann eine Ausgabe, falls die Bedingung auf der Eingabe des Benutzers wahr ist. Beachten Sie, Sie können das platzieren DANN Anweisung in der nächsten Zeile, wenn Sie diesen Stil bevorzugen. Siehe die Beispielausgabe unten:
LinuxHint@: ~ $ bash t1.Sch
Geben Sie ein Match -Wort ein: Hallo
Hallo auch dir
LinuxHint@: ~ $ bash t1.Sch
Geben Sie ein Match -Wort ein: Tschüss
LinuxHint@: ~ $
Beispiel 2: Wenn Anweisung in Bash über die Zahl der Zahlengleichheit
#!/Bin/Bash
Lesen Sie -p "Geben Sie eine Nummer ein:" user_input
if [[$ user_input -eq 7]]; Dann
Echo "7 ist eine Glückszahl"
fi
In diesem obigen Beispiel machen wir wieder eine einfache WENN Zustand, aber in diesem Fall zeigen wir, wie ein Testvergleich zu numerischen Werten durchgeführt wird. Sie können die folgende Ausgabe sowohl mit den Matching- als auch den nicht übereinstimmenden Bedingungen sehen:
LinuxHint@: ~ $ bash t2.Sch
Geben Sie eine Nummer ein: 7
7 ist eine Glückszahl
LinuxHint@: ~ $ bash t2.Sch
Geben Sie eine Nummer ein: 8
LinuxHint@: ~ $
Beispiel 3: Wenn Anweisung in Bash auf weniger als einer Zahl
Zusätzlich zu -Gl Für Gleichheit können Sie es auch versuchen -lt -le -gt -ge Testbedingungen für weniger als, weniger als oder gleich, größer oder höher als jeweils gleich. Unten finden Sie ein ähnliches Beispiel mit weniger als dem Bediener -lt:
#!/Bin/Bash
Lesen Sie -p "Geben Sie eine Nummer ein:" user_input
if [[$ user_input -lt 100]]; Dann
echo "Ihr Eintrag ist weniger als einhundert"
fi
Die Ausgabe für dieses Skript kann testen, ob die Eingabe weniger als 100 beträgt, und führen Sie einen bestimmten Code unter dieser Bedingung aus:
LinuxHint@: ~ $ bash t3.Sch
Geben Sie eine Nummer ein: 99
Ihr Eintrag ist weniger als einhundert
LinuxHint@: ~ $ bash t3.Sch
Geben Sie eine Nummer ein: 101
LinuxHint@: ~ $
Beispiel 4: Wenn Anweisung in Bash mit logischem und Operator
In diesem Beispiel wird angezeigt, wie mehrere Bedingungen mit einer logischen Kombination kombiniert werden können UND Zustand. Sie können auch logisch verwenden ODER Bedingungen in Ihrem WENN Anweisung Konstrukte. Logisch UND Im Bash -Code wird mit doppelten Verstärkern geschrieben &&. Unten ist ein Beispiel für logisch UND in einer Bash WENN Zustand:
#!/Bin/Bash
Lesen Sie -p "Geben Sie eine Nummer ein:" user_input
if [[$ user_input -Gt 9 && $ user_input -lt 100]]; Dann
Echo "Dein Eintrag ist zwei Ziffern"
fi
Wir werden dies mit verschiedenen Ausgängen testen, um zu beweisen, dass die Ausgabe sowohl dann gedruckt wird, wenn sowohl die erste als auch die zweite Bedingung wahr sind:
LinuxHint@: ~ $ bash t4.Sch
Geben Sie eine Nummer ein: 22
Ihr Eintrag ist zwei Ziffern
LinuxHint@: ~ $ bash t4.Sch
Geben Sie eine Nummer ein: 8
LinuxHint@: ~ $ bash t4.Sch
Geben Sie eine Nummer ein: 100
LinuxHint@: ~ $ bash t4.Sch
Geben Sie eine Nummer ein: 99
Ihr Eintrag ist zwei Ziffern
Beispiel 5: Wenn Anweisung in Bash mit logischem oder Operator
Logisch ODER In Bash -Skripten wird mit doppelten vertikalen Balken geschrieben ||. Versuchen wir das vorherige Beispiel erneut mit einer leichten Abweichung, um ein Beispiel für den logischen oder Operator zu testen:
#!/Bin/Bash
Lesen Sie -p "Geben Sie eine Nummer ein:" user_input
if [[$ user_input -lt 10 || $ User_input -ge 100]]; Dann
Echo "Ihr Eintrag ist keine zweistelligen Ziffern"
fi
In diesem Beispiel die logisch ODER Der Bediener kombiniert zwei Bedingungen, und nur einer von ihnen oder beides kann für die Bedingung der Bedingung insgesamt wahr sein und der Code ausführen, um auszuführen. Wir demonstrieren auch das -Ge Operator für einen größeren oder gleichberechtigten numerischen Vergleich im obigen Beispiel. Das Skript funktioniert wie erwartet in der folgenden Ausgabe:
LinuxHint@: ~ $ bash t5.Sch
Geben Sie eine Nummer ein: 3
Ihr Eintrag ist nicht zwei Ziffern
LinuxHint@: ~ $ bash t5.Sch
Geben Sie eine Nummer ein: 10
LinuxHint@: ~ $ bash t5.Sch
Geben Sie eine Nummer ein: 99
LinuxHint@: ~ $ bash t5.Sch
Geben Sie eine Nummer ein: 100
Ihr Eintrag ist nicht zwei Ziffern
LinuxHint@: ~ $ bash t5.Sch
Geben Sie eine Nummer ein: 101
Ihr Eintrag ist nicht zwei Ziffern
Beispiel 6: Elifbedingung in Bash
Wir werden nun ein Beispiel für mehrere wenn Bedingungen im Codeblock mit mit dem Code -Block geben Elif. Sie können null, eins oder ein Multipe haben Elif Bedingungen in einem Codeblock. In diesem Beispiel werden wir zwei bereitstellen Elif Bedingungen als Demonstration, aber Sie können eine beliebige Anzahl von verwenden Elif Blöcke in der Praxis.
#!/Bin/Bash
Lesen Sie -p "Geben Sie eine Nummer ein:" user_input
if [[$ user_input -lt 0]]; Dann
echo "keine gültige positive Zahleingabe"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; Dann
Echo "Gültig 1 -Ziffern -Nummer eingegeben" "
elif [[$ user_input -Gt 9 && $ user_input -lt 100]]; Dann
Echo "Gültig 2 -Ziffern -Nummer eingegeben" "
fi
Wir werden diesen Code mit einer Vielzahl von Zahlen testen, um zu demonstrieren, welche wenn oder Elif Der Zustand wird ausgelöst:
LinuxHint@: ~ $ bash t6.Sch
Geben Sie eine Nummer ein: -1
Keine gültige positive Zahleingabe
LinuxHint@: ~ $ bash t6.Sch
Geben Sie eine Nummer ein: 1
Gültig 1 Ziffernnummer eingegeben
LinuxHint@: ~ $ bash t6.Sch
Geben Sie eine Nummer ein: 14
Gültige 2 -Ziffern -Nummer eingegeben
LinuxHint@: ~ $ bash t6.Sch
Geben Sie eine Nummer ein: 101
LinuxHint@: ~ $
Beispiel 7: Wenn sonst Anweisung in Bash Scripting
Wir werden jetzt das demonstrieren ANDERS Zustand. Der ANDERS Bedingung wird in dem Fall verwendet, in dem die WENN Zustand oder alle der Elif Bedingungen existieren nicht dann die ANDERS Bedingung wird verwendet und der Code in der ANDERS Bedingung wird ausgeführt. Fügen wir ein Beispiel von hinzu ANDERS Bedingung zum vorherigen Beispiel, aber klar zu sein Elif ist nicht erforderlich, um die zu nutzen ANDERS Zustand. Der ANDERS Zustand kann mit a verwendet werden WENN Zustand und nein Elif Zustand.
#!/Bin/Bash
Lesen Sie -p "Geben Sie eine Nummer ein:" user_input
if [[$ user_input -lt 0]]; Dann
echo "keine gültige positive Zahleingabe"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; Dann
Echo "Gültig 1 -Ziffern -Nummer eingegeben" "
elif [[$ user_input -Gt 9 && $ user_input -lt 100]]; Dann
Echo "Gültig 2 -Ziffern -Nummer eingegeben" "
anders
echo "Eine gültige 2 -stellige Nummer wurde nicht eingegeben"
fi
Testen wir den Beispielcode mit einem einfachen Testfall, der in die fallen sollte ANDERS Zustand:
LinuxHint@: ~ $ bash t7.Sch
Geben Sie eine Nummer ein: 199
Eine gültige 2 -stellige Nummer wurde nicht eingegeben
LinuxHint@: ~ $
ABSCHLUSS
Wir haben gesehen, wie man benutzt WENN, Elif Und ANDERS Bedingungen, um in vielen Kombinationen in Bash -Skripten und Bash -Programmen eine bedingte Ausführung zu bilden. Für die nächsten Schritte können Sie die Testbedingungen und die Variationen und Sorten zum Testen einer Erkrankung untersuchen. Sie können die Bash -Fallanweisung auch als Alternative für die bedingte Logik in Bash -Skripten betrachten. Schließlich ist das GNU -Bash -Referenzhandbuch eine gute Quelle der Wahrheit bei der Suche nach genauen Syntaxdetails.