In diesem Thema werden wir verstehen, wie man es verwendet if-Anweisungen in Bash-Skripten, um unsere automatisierten Aufgaben zu erledigen.
Bash if-Anweisungen sind von Vorteil. Sie werden verwendet, um bedingte Aufgaben im sequentiellen Ablauf der Ausführung von Anweisungen auszuführen. If-Anweisungen ermöglichen es uns normalerweise, Entscheidungen in unseren Bash-Skripten zu treffen. Sie helfen uns bei der Entscheidung, ob wir einen Code ausführen sollen oder nicht, basierend auf der Bedingung, die wir möglicherweise festlegen.
Grundlegende if-Anweisungen
Eine einfache if-Anweisung befiehlt, dass, wenn eine bestimmte Bedingung wahr ist, nur eine bestimmte Reihe von Aktionen ausgeführt wird. Wenn dies nicht der Fall ist, führen Sie diese Aktionen nicht aus. Die If-Anweisung basiert auf dem folgenden Format:
Syntax
if [ expression ]; then statements fi
Die Aussage zwischen Dann Und Sei (Wenn rückwärts) wird nur ausgeführt, wenn der Ausdruck (in den eckigen Klammern) wahr ist.
Notiz:Beachten Sie die in der ersten Zeile verwendeten Leerzeichen und ein Semikolon am Ende der ersten Zeile. Beide sind zwingend zu verwenden.If-bedingte Anweisungendet mitSei.
- Zur Verwendung mehrerer Bedingungen mit AND-Operator:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Für die Verwendung mehrerer Bedingungen mit OR-Operator:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Für zusammengesetzte Ausdrücke mit AND- und OR-Operatoren können wir die folgende Syntax verwenden:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Im Folgenden finden Sie einige Beispiele, die die Verwendung der if-Anweisung veranschaulichen:
Beispiel 1
Nehmen Sie in diesem Beispiel eine Benutzereingabe einer beliebigen Zahl und prüfen Sie, ob der Wert größer als 125 ist.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Ausgabe
Wenn wir die Zahl 159 eingeben, sieht die Ausgabe so aus:
Beispiel 2
In diesem Beispiel demonstrieren wir die Verwendung von if-Anweisung mit einem einfachen Szenario zum Vergleich zweier Zeichenfolgen:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Ausgabe
Beispiel 3
In diesem Beispiel zeigen wir, wie man Zahlen mithilfe der if-Anweisung vergleicht:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Ausgabe
Beispiel 4
In diesem Beispiel definieren wir, wie der AND-Operator verwendet wird, um mehrere Bedingungen in den if-Ausdruck aufzunehmen:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Ausgabe
Beispiel 5
In diesem Beispiel definieren wir, wie der OR-Operator verwendet wird, um mehrere Bedingungen in den if-Ausdruck aufzunehmen:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Ausgabe
Beispiel 6
In diesem Beispiel definieren wir, wie AND und OR verwendet werden, um mehrere Bedingungen in den if-Ausdruck aufzunehmen:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Ausgabe
Optionen für die If-Anweisung im Bash-Scripting
Die If-Anweisung enthält viele Optionen zum Ausführen einer bestimmten Aufgabe. Diese Optionen können für Dateioperationen, Zeichenfolgenoperationen usw. verwendet werden. Im Folgenden sind einige der am häufigsten verwendeten Optionen aufgeführt:
Optionen (Operatoren) | Beschreibung |
---|---|
! AUSDRUCK | Um zu überprüfen, ob EXPRESSION falsch ist. |
-n STRING | Um zu überprüfen, ob die Länge von STRING größer als Null ist. |
-z STRING | Um zu überprüfen, ob die Länge von STRING Null ist (d. h. leer) |
STRING1 == STRING2 | Um zu überprüfen, ob STRING1 gleich STRING2 ist. |
STRING1 != STRING2 | Um zu prüfen, ob STRING1 nicht gleich STRING2 ist. |
INTEGER1 -eq INTEGER2 | Um zu überprüfen, ob INTEGER1 numerisch gleich INTEGER2 ist. |
INTEGER1 -gt INTEGER2 | Um zu überprüfen, ob INTEGER1 numerisch größer als INTEGER2 ist. |
INTEGER1 -lt INTEGER2 | Um zu überprüfen, ob INTEGER1 numerisch kleiner als INTEGER2 ist. |
-d DATEI | Um zu überprüfen, ob FILE existiert und es sich um ein Verzeichnis handelt. |
-E-Datei | Um zu überprüfen, ob FILE existiert. |
-r DATEI | Um zu prüfen, ob FILE vorhanden ist und die Leseberechtigung erteilt wurde. |
-s DATEI | Um zu überprüfen, ob die Datei existiert und ihre Größe größer als Null ist (was bedeutet, dass sie nicht leer ist). |
-w DATEI | Um zu prüfen, ob FILE vorhanden ist und die Schreibberechtigung erteilt wurde. |
x DATEI | Um zu überprüfen, ob FILE vorhanden ist und die Ausführungsberechtigung erteilt wurde. |
Verschachteltes Wenn
Sie können in Ihrem Bash-Skript beliebig viele „if-Anweisungen“ anwenden. Es ist auch möglich, eine if-Anweisung innerhalb einer anderen „if-Anweisung“ zu verwenden. Es ist als verschachtelte If-Anweisung bekannt.
Beispiel
In diesem Beispiel ermitteln wir mithilfe eines verschachtelten if-Ausdrucks, ob eine bestimmte Zahl größer als 50 und eine gerade Zahl ist.
kein Eingangssignal
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Ausgabe
Wenn wir einen Argumentwert als 100 eingeben, sieht die Ausgabe so aus:
Abschluss
In diesem Thema haben wir besprochen, wie wir bedingte Verzweigungen im sequentiellen Ablauf der Ausführung von Anweisungen mit der Bash-If-Anweisung verwenden können.