Bash wenn, sonst wenn, sonst Beispiele

Bash wenn, sonst wenn, sonst Beispiele
In diesem Linux -Tutorial unterrichten wir Bash -Skriptbedingungen mithilfe WENN, Elif Und ANDERS Befehle. Der WENN Die Bedingung ist die grundlegendste Möglichkeit, bedingte Maßnahmen in einen Bash -Skripte zu ergreifen, damit es wichtig ist, dass die Syntax und die Optionen produktiv sind. Beim Benutzen WENN Bedingungen in Bash können Sie optional vorstellen Elif Bedingungen, die unterschiedliche Maßnahmen liefern, je nachdem, welcher einer Gruppe von Bedingungen ist WAHR. Zusätzlich die ANDERS Die Bedingung kann optional enthalten sein, wodurch Code zur Ausführung bereitgestellt wird, wenn keine der Bedingungen in der Gruppe erfüllt ist.

Spezifische Beispiele in diesem Artikel sind:

  1. Beispiel 1: Wenn Anweisung in Bash zur String -Gleichheit
  2. Beispiel 2: Wenn Anweisung in Bash über die Zahl der Zahlengleichheit
  3. Beispiel 3: Wenn Anweisung in Bash auf weniger als einer Zahl
  4. Beispiel 4: Wenn Anweisung in Bash mit logischem und Operator
  5. Beispiel 5: Wenn Anweisung in Bash mit logischem oder Operator
  6. Beispiel 6: Elifbedingung in Bash
  7. Beispiel 7: Wenn sonst Anweisung in Bash Scripting

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.