logo

Bash Wenn

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:

Bash If-Anweisung

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

Bash If-Anweisung

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

Bash If-Anweisung

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

Bash If-Anweisung

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

Bash If-Anweisung

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

Bash If-Anweisung

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:

Bash If-Anweisung

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.