Bash ist ein Interpreter für Befehlssprachen. Es ist ein Standard-Befehlsinterpreter auf den meisten GNU/ Linux-Systeme und ist auf verschiedenen Betriebssystemen weit verbreitet. Der Name ist eine Abkürzung für Bourne-Again SHell . Scripting ermöglicht die Ausführung von Anweisungen, die sonst einzeln interaktiv ausgeführt würden.
In diesem Artikel besprechen wir die if-Anweisung in Bash-Skripten.
Bash If-Anweisung
Die grundlegende Syntax einer „if“-Anweisung in Bash:
#!/bin/bash if [ condition ]; then # code to be executed if the condition is true fi>
Erläuterung:
-
if [ condition ]; then>: Diese Zeile beginnt mit der if-Anweisung, wocondition>ist der Ausdruck, der ausgewertet wird. Wenn die Bedingung erfüllt ist, wird der darin enthaltene Code angezeigtthen>Block wird ausgeführt. -
# code to be executed if the condition is true>: Dies ist der Codeblock, der ausgeführt wird, wenn die in der if-Anweisung angegebene Bedingung wahr ist. -
fi>: Dies markiert das Ende der if-Anweisung.
Bash-Skript zur Bestimmung, ob eine Zahl gerade ist
Das Folgende ist ein Beispiel Skript Dadurch werden Sie aufgefordert, eine Zahl einzugeben, und anschließend wird geprüft, ob die angegebene Zahl gerade ist.
#!/usr/bin/bash
# Dieses Skript fordert den Benutzer zur Eingabe einer Zahl auf, prüft, ob diese gerade ist, und gibt eine entsprechende Meldung aus.
# Fordern Sie den Benutzer auf, eine Nummer einzugebenecho -n Zahl eingeben:
x lesen# Überprüfen Sie, ob die eingegebene Zahl gerade ist
if [ $((x % 2)) == 0 ]; Dann
Echo-Zahl ist gerade
Sei
Erläuterung:
-
#!/usr/bin/bash>: Dies ist eine Shebang-Zeile, die den Pfad zum Bash-Interpreter angibt. Es gibt an, dass das Skript mit Bash ausgeführt werden soll. -
echo -n 'Enter Number: '>: Diese Zeile gibt die Eingabeaufforderung Enter Number: ohne ein Zeilenumbruchzeichen aus (-n>Möglichkeit). Es wartet darauf, dass der Benutzer eine Nummer eingibt. -
read x>: Liest die Benutzereingabe und weist sie der Variablen zux>. -
if [ $((x % 2)) == 0 ]; then>: Diese Zeile prüft, ob der Rest der Division der eingegebenen Zahl (x>) mal 2 ist gleich 0. Wenn wahr, bedeutet dies, dass die Zahl gerade ist. -
echo 'Number is Even'>: Wenn die Bedingung in der if-Anweisung wahr ist, gibt diese Zeile „Number is Even“ auf der Konsole aus.
Ausgabe:

Bash-Skript zur Bestimmung, ob eine Zahl gerade ist
Notiz: Das Skript behandelt keine Fälle, in denen der Benutzer einen nicht numerischen Wert eingibt. Wenn der Benutzer einen nicht numerischen Wert eingibt, kann dies zu unerwarteten Ergebnissen führen. Um dieses Problem zu beheben, könnte eine zusätzliche Eingabevalidierung hinzugefügt werden.
Bash if-else-Anweisung
Die grundlegende Syntax einer „if-else“-Anweisung in Bash:
#!/bin/bash
if [ Bedingung ]; Dann
# Code, der ausgeführt werden soll, wenn die Bedingung wahr ist
anders
# Code, der ausgeführt werden soll, wenn die Bedingung falsch ist
math.random JavaSei
Erläuterung:
-
if [ condition ]; then>: Diese Zeile beginnt mit der if-Anweisung, wocondition>ist der Ausdruck, der ausgewertet wird. Wenn die Bedingung erfüllt ist, wird der darin enthaltene Code angezeigtthen>Block wird ausgeführt. -
# code to be executed if the condition is true>: Dies ist der Codeblock, der ausgeführt wird, wenn die in der if-Anweisung angegebene Bedingung wahr ist. -
else>: Wenn die Bedingung in der if-Anweisung falsch ist, wird der Code darinelse>Block wird ausgeführt. -
# code to be executed if the condition is false>: Dies ist der Codeblock, der ausgeführt wird, wenn die in der if-Anweisung angegebene Bedingung falsch ist. -
fi>: Dies markiert das Ende der if-else-Anweisung.
Wie finde ich die größere Zahl mithilfe von if-else-Anweisungen im Bash-Skript?
Hier ist das Bash-Skript, um die größere Zahl mithilfe der if-else-Anweisung im Bash-Skript herauszufinden.
#!/bin/bash
# Fordern Sie den Benutzer auf, einen Wert für x einzugebenecho -n Geben Sie den Wert von x ein:
x lesenif [ $x -gt 5 ]; Dann
echo x ist größer als 5
anders
echo x ist nicht größer als 5
Sei
Erklärung:
- #!/bin/bash : Diese Zeile wird Shebang genannt und gibt an, dass das Skript mithilfe der Bash-Shell interpretiert und ausgeführt werden soll.
- # Fordern Sie den Benutzer auf, einen Wert für x einzugeben : Dies ist ein Kommentar, der den Zweck der nächsten Zeile angibt.
- echo -n Geben Sie den Wert von x ein: : Diese Zeile gibt die Meldung „Geben Sie den Wert von x:“ an das Terminal aus, ohne zur nächsten Zeile zu wechseln. Der Benutzer gibt seinen Wert in derselben Zeile ein.
- x lesen : Diese Zeile liest die Eingabe des Benutzers und weist sie der Variablen „x“ zu.
- if [ $x -gt 5 ]; Dann : Dies ist eine if-Anweisung, die prüft, ob der Wert von „x“ größer als 5 ist.
- $x : Stellt den Wert der Variablen „x“ dar.
- -gt : Steht im Zahlenvergleich für größer als.
- 5 : Der Wert, mit dem verglichen wird.
- echo x ist größer als 5 : Wenn die Bedingung in der vorherigen Zeile wahr ist, wird diese Zeile ausgeführt und x ist größer als 5 an das Terminal ausgegeben.
- anders : Wenn die Bedingung in der if-Anweisung falsch ist, springt das Skript zum else-Block.
- echo x ist nicht größer als 5 : Diese Zeile wird ausgeführt, wenn der Wert von „x“ nicht größer als 5 ist und x ist nicht größer als 5 an das Terminal ausgegeben.
- Sei : Dies bedeutet das Ende des if-else-Blocks.
Ausgabe:

Mit if-else eine größere Zahl finden
Bash if-elif-else-Anweisung
Derif-elif-else>Die Anweisung in Bash wird für bedingte Verzweigungen verwendet. Es ermöglicht Ihnen, mehrere Bedingungen anzugeben und basierend auf der Auswertung dieser Bedingungen verschiedene Codeblöcke auszuführen.
Die grundlegende Syntax einer „if-elif-else“-Anweisung in Bash:
#!/bin/bash
if [ Bedingung1 ]; Dann
# Code, der ausgeführt werden soll, wenn Bedingung1 wahr ist
elif [ Bedingung2 ]; Dann
# Code, der ausgeführt werden soll, wenn Bedingung2 wahr ist
elif [ Bedingung3 ]; Dann
# Code, der ausgeführt werden soll, wenn Bedingung3 wahr ist
anders
# Code, der ausgeführt werden soll, wenn keine der Bedingungen wahr ist
Sei
Erläuterung:
- if [ Bedingung1 ]; Dann : Dies ist der Ausgangspunkt der
if-elif-else>Stellungnahme. Der Code in diesem Block wird ausgeführt, wenncondition1>ist wahr. - # Code, der ausgeführt werden soll, wenn Bedingung1 wahr ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition1>ist wahr. - elif [ Bedingung2 ]; Dann : Wenn
condition1>falsch ist, prüft das Skriptcondition2>. Wenncondition2>wahr ist, wird der Code in diesem Block ausgeführt. - # Code, der ausgeführt werden soll, wenn Bedingung2 wahr ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition2>ist wahr. - elif [ Bedingung3 ]; Dann : Wenn beides
condition1>Undcondition2>falsch sind, prüft das Skriptcondition3>. Wenncondition3>wahr ist, wird der Code in diesem Block ausgeführt. - # Code, der ausgeführt werden soll, wenn Bedingung3 wahr ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition3>ist wahr. - anders : Wenn keine der vorhergehenden Bedingungen (Bedingung1, Bedingung2, Bedingung3 usw.) wahr ist, wird der Code innerhalb der
else>Block wird ausgeführt. - # Code, der ausgeführt werden soll, wenn keine der Bedingungen wahr ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn keine der Bedingungen zutrifft.
- Sei : Dies markiert das Ende des
if-elif-else>Stellungnahme. Das Wort fi wird rückwärts geschrieben und wird zum Schließen der bedingten Blöcke in Bash verwendet.
Wie finde ich heraus, ob die Zahl positiv, negativ oder Null ist, indem ich die Anweisung „if-elif-else“ in Bash verwende?
Erweitern wir den Code im obigen Beispiel, um die Bedingung für die Prüfung auf Null hinzuzufügen.
#!/bin/bash
# Fordern Sie den Benutzer auf, eine Nummer einzugeben
echo -n Geben Sie eine Zahl ein:
lese Numif [ $num -gt 0 ]; Dann
echo $num ist eine positive Zahl.
elif [ $num -lt 0 ]; Dann
echo $num ist eine negative Zahl.
anders
echo $num ist Null.
Sei
Erläuterung:
- #!/bin/bash : Diese Zeile ist ein Hinweis darauf, dass das Skript mithilfe der Bash-Shell interpretiert und ausgeführt werden soll.
- # Fordern Sie den Benutzer auf, eine Nummer einzugeben : Dies ist ein Kommentar, der den Zweck der nächsten Zeile angibt.
- echo -n Geben Sie eine Zahl ein: : Diese Zeile gibt die Meldung „Geben Sie eine Nummer ein:“ an das Terminal aus, ohne zur nächsten Zeile zu wechseln. Der Benutzer gibt seine Nummer in derselben Zeile ein.
- lese Num : Diese Zeile liest die Eingabe des Benutzers und weist sie der Variablen „num“ zu.
- if [ $num -gt 0 ]; Dann : Dies ist eine if-Anweisung, die prüft, ob der Wert von „num“ größer als 0 ist.
- $num : Stellt den Wert der Variablen „num“ dar.
- -gt : Steht im Zahlenvergleich für größer als.
- 0 : Der Wert, mit dem verglichen wird.
- echo $num ist eine positive Zahl. : Wenn die Bedingung in der vorherigen Zeile wahr ist, wird diese Zeile ausgeführt und $num als positive Zahl ausgegeben. zum Terminal.
- elif [ $num -lt 0 ]; Dann : Wenn die Bedingung in der if-Anweisung falsch ist, prüft diese Zeile, ob der Wert von „num“ kleiner als 0 ist.
- $num : Stellt den Wert der Variablen „num“ dar.
- -lt : Steht im Zahlenvergleich für weniger als.
- 0 : Der Wert, mit dem verglichen wird.
- echo $num ist eine negative Zahl. : Wenn die Bedingung in der elif-Anweisung wahr ist, wird diese Zeile ausgeführt und $num ist eine negative Zahl. zum Terminal.
- anders : Wenn beide Bedingungen in der if- und elif-Anweisung falsch sind, springt das Skript zum else-Block.
- echo $num ist Null. : Diese Zeile wird ausgeführt, wenn der Wert von „num“ nicht größer als 0 und nicht kleiner als 0 ist. Die Ausgabe von $num ist Null. zum Terminal.
- Sei : Dies bedeutet das Ende des if-elif-else-Blocks.
Ausgabe:

wenn die Zahl positiv, negativ oder Null ist, mit „if-elif-else“.
Bash Nested if-Anweisung
In Bash können Sie verschachtelt verwendenif>Anweisungen, um komplexere bedingte Strukturen zu erstellen. Hier ist die Syntax für eine verschachtelteif>Stellungnahme:
#!/bin/bash
if [ Bedingung1 ]; Dann
# Code, der ausgeführt werden soll, wenn Bedingung1 wahr ist
if [ Bedingung2 ]; Dann
# Code, der ausgeführt werden soll, wenn Bedingung2 wahr ist
anders
# Code, der ausgeführt werden soll, wenn Bedingung2 falsch ist
Sei
anders
# Code, der ausgeführt werden soll, wenn Bedingung1 falsch ist
Sei
Erläuterung:
- if [ Bedingung1 ]; Dann : Das ist das Äußere
if>Stellungnahme. Wenncondition1>wahr ist, wird der Code in diesem Block ausgeführt. - # Code, der ausgeführt werden soll, wenn Bedingung1 wahr ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition1>ist wahr. - if [ Bedingung2 ]; Dann : Innerhalb des Blocks des Äußeren
if>Aussage, es gibt ein Inneresif>Stellungnahme. Wenncondition2>wahr ist, wird der Code in diesem Block ausgeführt. - # Code, der ausgeführt werden soll, wenn Bedingung2 wahr ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition2>ist wahr. - anders : Wenn
condition2>im Innerenif>Aussage ist falsch, der Code darinelse>Block des Innerenif>Anweisung wird ausgeführt. - # Code, der ausgeführt werden soll, wenn Bedingung2 falsch ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition2>ist falsch. - Sei : Dies markiert das Ende des Inneren
if>Stellungnahme. - anders : Wenn
condition1>im Äußerenif>Aussage ist falsch, der Code darinelse>Block des Äußerenif>Anweisung wird ausgeführt. - # Code, der ausgeführt werden soll, wenn Bedingung1 falsch ist : Ersetzen Sie diesen Kommentar durch den tatsächlichen Code, den Sie ausführen möchten, wenn
condition1>ist falsch. - Sei : Dies markiert das Ende des Äußeren
if>Stellungnahme.
Wie überprüfe ich die Altersberechtigung und die Leistungen für Senioren in Bash mithilfe verschachtelter If-Anweisungen?
Lassen Sie uns den obigen Code ein wenig optimieren, um verschachteltes If zu verwenden.
#!/bin/bash
# Fordern Sie den Benutzer auf, ein Alter einzugeben
echo -n Geben Sie Ihr Alter ein:
Alter lesenif [ $age -ge 18 ]; Dann
echo Sie sind wahlberechtigt.
if [ $age -ge 65 ]; Dann
echo Auch Sie haben Anspruch auf Seniorenleistungen.
anders
echo Sie haben noch keinen Anspruch auf Seniorenleistungen.
Sei
anders
echo Sie sind noch nicht wahlberechtigt.
Sei
Erläuterung:
- #!/bin/bash : Diese Zeile ist ein Hinweis darauf, dass das Skript mithilfe der Bash-Shell interpretiert und ausgeführt werden soll.
- # Fordern Sie den Benutzer auf, ein Alter einzugeben : Dies ist ein Kommentar, der den Zweck der nächsten Zeile angibt.
- echo -n Geben Sie Ihr Alter ein: : Diese Zeile gibt die Meldung „Geben Sie Ihr Alter ein:“ an das Terminal aus, ohne zur nächsten Zeile zu wechseln. Der Benutzer gibt sein Alter in derselben Zeile ein.
- Alter lesen : Diese Zeile liest die Eingabe des Benutzers und weist sie der Variablen „Alter“ zu.
- if [ $age -ge 18 ]; Dann : Dies ist eine if-Anweisung, die prüft, ob der Wert von „Alter“ größer oder gleich 18 ist.
- $Alter : Stellt den Wert der Variablen „Alter“ dar.
- -ge : Steht im Zusammenhang mit numerischen Vergleichen für größer oder gleich.
- 18 : Der Wert, mit dem verglichen wird.
- echo Sie sind wahlberechtigt. : Wenn die Bedingung in der vorherigen Zeile wahr ist, wird diese Zeile ausgeführt und gedruckt: Sie sind wahlberechtigt. zum Terminal.
- if [ $age -ge 65 ]; Dann : Innerhalb des ersten if-Blocks ist dies eine weitere if-Anweisung, die prüft, ob der Wert von „age“ größer oder gleich 65 ist.
- $Alter : Stellt den Wert der Variablen „Alter“ dar.
- -ge : Steht im Zusammenhang mit numerischen Vergleichen für größer oder gleich.
- 65 : Der Wert, mit dem verglichen wird.
- echo Auch Sie haben Anspruch auf Seniorenleistungen. : Wenn die Bedingung in der inneren if-Anweisung wahr ist, wird diese Zeile ausgeführt und gedruckt: Sie haben auch Anspruch auf Seniorenleistungen. zum Terminal.
- anders : Wenn die Bedingung in der inneren if-Anweisung falsch ist, springt das Skript zum else-Block innerhalb der äußeren if-Anweisung.
- echo Sie haben noch keinen Anspruch auf Seniorenleistungen. : Diese Zeile wird ausgeführt, wenn der Wert von „Alter“ nicht größer oder gleich 65 ist. Es wird gedruckt, dass Sie noch keinen Anspruch auf Seniorenleistungen haben. zum Terminal.
- Sei : Dies bedeutet das Ende des inneren if-else-Blocks.
- anders : Wenn die Bedingung in der äußeren if-Anweisung falsch ist, springt das Skript zum else-Block.
- echo Sie sind noch nicht wahlberechtigt. : Diese Zeile wird ausgeführt, wenn der Wert von „Alter“ nicht größer oder gleich 18 ist, und es wird angezeigt, dass Sie noch nicht wahlberechtigt sind. zum Terminal.
- Sei : Dies bezeichnet das Ende des äußeren if-else-Blocks.
Ausgabe:

verschachtelt – wenn Bash verwendet wird
FAQs und einige Hinweise zum ZUSTAND
Dies sind ein paar Dinge, die ich beim Schreiben von Testbedingungen in Bash beachten sollte.
1. Stellen Sie sicher, dass zwischen den Klammern und der eigentlichen Prüf-/Vergleichsanweisung Leerzeichen stehen.
Folgendes wird beispielsweise nicht funktionieren.
if [$x==0]>Bash meldet einen Fehler zu a fehlen ] .
2. Beenden Sie die Zeile immer, bevor Sie ein neues Schlüsselwort hinzufügen, z. B. then.
Wenn also else, elif und fi alles Shell-Schlüsselwörter sind, bedeutet das, dass sie nicht in derselben Zeile verwendet werden können. Setzen Sie ein ; zwischen der vorherigen Anweisung und dem Schlüsselwort einfügen oder eine neue Zeile mit dem Schlüsselwort beginnen.
3. Um viele Bedingungen in einer Anweisung zu verwenden, verwenden Sie logische Operatoren.
Wir können logische UND-Operatoren (&&) oder logische ODER-Operatoren (||) verwenden, um mehrere Bedingungen zu verwenden.
Zum Beispiel:
if [[ $x -ge $y ]] && [[ $x -ge $z ]]; then echo 'x is greatest' fi>Hier ist -ge eine Abkürzung für größer oder gleich
4. Wie vergleiche ich Strings in einer Bash-if-Anweisung?
Verwenden Sie das ` => `>Operator für String-Gleichheit und ` !=`> für Ungleichheit.
Zum Beispiel:
if [ '$string1' = '$string2' ]; then # Code to execute if strings are equal else # Code to execute if strings are not equal fi>
5. Kann ich reguläre Ausdrücke in Bash-IF-Anweisungen verwenden?
Ja, Sie können das ` verwenden [[ ... ]]`> Konstrukt für einen erweiterten String-Abgleich mit regulären Ausdrücken.
Zum Beispiel:
if [[ '$string' =~ ^[0-9]+$ ]]; then # Code to execute if the string contains only numbers else # Code to execute if the string does not contain only numbers fi>
6. Wie kann ich mithilfe einer if-Anweisung überprüfen, ob eine Datei in einem Bash-Skript vorhanden ist?
Sie können das ` verwenden -e`> Flag in der Bedingung, etwa so:
if [ -e 'filename' ]; then # Code to execute if the file exists else # Code to execute if the file does not exist fi>
7. Wie lautet die Syntax für eine if-else-Anweisung im Bash-Skripting?
Die grundlegende Syntax für eine „Wenn-sonst“. Die Anweisung in der Bash-Skripterstellung lautet:
if [ condition ]; then # Code to execute if condition is true else # Code to execute if condition is false fi>
8. Wie verwende ich die elif-Anweisung in einem Bash-Skript?
Das ` elif`> Die Anweisung wird verwendet, um zusätzliche Bedingungen zu überprüfen, wenn die ursprünglicheif>Bedingung ist falsch.
Hier ist ein Beispiel:
if [ condition1 ]; then # Code to execute if condition1 is true elif [ condition2 ]; then # Code to execute if condition2 is true else # Code to execute if none of the conditions are true fi>
9. Wie kann ich logische Operatoren (AND, OR) in Bash-IF-Anweisungen verwenden?
Sie können ` verwenden -a`> für logisches UND und ` -o`> für logisches ODER.
Zum Beispiel:
if [ condition1 -a condition2 ]; then # Code to execute if both conditions are true fi>
Abschluss
In diesem Artikel haben wir Bash-Skripting besprochen, das ein äußerst nützliches Tool ist, mit dem Sie Ihren Computer dazu bringen können, Dinge automatisch zu erledigen. In diesem Artikel haben wir etwas über die if-Anweisung in Bash gelernt, die wie ein Entscheidungsträger in Skripten ist. Wir lernten die Grundlagen, sahen Beispiele wie die Überprüfung, ob eine Zahl gerade ist oder herauszufinden, ob jemand wählen darf, und erkundeten sogar ausgefallenere Dinge wie den Umgang mit vielen Bedingungen oder das Einfügen von if-Anweisungen ineinander. Der Artikel enthielt klare Erklärungen, Beispiele und beantwortete häufig gestellte Fragen, um uns dabei zu helfen, die Verwendung von Bash-Skripten zu verbessern. Die wichtigste Erkenntnis besteht darin, mit Details wie Abständen und Sonderregeln vorsichtig zu sein, damit unsere Skripte reibungslos funktionieren und die Aufgaben am Computer leichter zu bewältigen sind.