Mit einer if-Anweisung, einer Art bedingter Anweisung, können Sie abhängig von den angegebenen Bedingungen verschiedene Aktionen ausführen. Es gibt dem System effektiv die Fähigkeit, Entscheidungen zu treffen.
Ein Beispiel für die einfachste Form einer if-Anweisung wäre:
count = 5 wenn $ count == 5 dann echo "$ count" fi
In diesem Beispiel wird die Variable "count" verwendet, um eine Bedingung anzugeben, die als Teil der if-Anweisung verwendet wird. Bevor die if-Anweisung ausgeführt wird, wird der Variablen "count" der Wert "5" zugewiesen. Die if-Anweisung überprüft dann, ob der Wert von "count" "5" ist. Wenn dies der Fall ist, werden die Anweisungen zwischen den Schlüsselwörtern "dann" und "fi" ausgeführt, andernfalls werden alle Anweisungen ausgeführt, die auf die if-Anweisung folgen. Das Schlüsselwort "fi" ist "if" rückwärts geschrieben. Die Bash-Skriptsprache verwendet diese Konvention, um das Ende eines komplexen Ausdrucks zu markieren, beispielsweise einer if-Anweisung oder einer Case-Anweisung.
Die Anweisung "echo" gibt ihr Argument, in diesem Fall den Wert der Variablen "count", in das Terminalfenster aus. Einrückung des Codes zwischen den Schlüsselwörtern der if-Anweisung verbessert die Lesbarkeit, ist jedoch nicht erforderlich.
Wenn Sie eine Situation haben, in der ein Code nur dann ausgeführt werden soll, wenn eine Bedingung nicht erfüllt ist, können Sie das Schlüsselwort "else" in einer if-Anweisung verwenden, wie in diesem Beispiel:
count = 5 wenn $ count == 5, dann echo "$ count", ansonsten echo "count ist nicht 5" fi
Wenn die Bedingung "$ count == 5" erfüllt ist, gibt das System den Wert der Variablen "count" aus. Andernfalls wird die Zeichenfolge "count is not 5" ausgegeben.
Wenn Sie mehrere Bedingungen unterscheiden möchten, können Sie das Schlüsselwort "elif" verwenden, das von "else if" abgeleitet ist, wie in diesem Beispiel:
wenn $ count == 5 dann Echo "count is five" elif $ count == 6, dann echo "count is six" sonst echo "none of the above" fi
Wenn "count" "5" ist, gibt das System "count is five" aus. Wenn "count" nicht "5" sondern "6" ist, druckt das System "count is six". Wenn es weder "5" noch "6" ist, druckt das System "keine der oben genannten".
Wie Sie vielleicht schon erraten haben, können Sie eine beliebige Anzahl von "elif" -Klauseln haben. Ein Beispiel mit mehreren "elif" -Bedingungen wäre:
Wenn $ count == 5 dann Echo "count is five" elif $ count == 6, dann Echo "count is six" elif $ count == 7, dann Echo "count is seven" elif $ count = = 8 dann echo "count ist acht" elif $ count == 9 dann echo "count is nine" sonst echo "keiner der oben genannten" fi
Eine kompaktere Methode zum Schreiben solcher Anweisungen mit mehreren Bedingungen ist die Fallmethode. Es funktioniert ähnlich wie die if-Anweisung mit mehreren "elif" -Klauseln, ist aber prägnanter. Zum Beispiel kann der obige Code wie folgt mit der "case" -Anweisung umgeschrieben werden:
Fall "$ count" in 5) Echo "count is five" ;; 6) echo "count is six" ;; 7) Echo "zählt sieben" ;; 8) Echo "Anzahl ist acht" ;; 9) echo "count is nine" ;; *) Echo "keine der oben genannten" Esac
If-Anweisungen werden häufig in for-Schleifen oder while-Schleifen verwendet, wie in diesem Beispiel:
count = 1 done = 0, während $ count -le 9 den Schlaf 1 ((count ++)) einschaltet, wenn $ count == 5 und dann das Echo "$ count" fertig ist
Sie können auch if-Anweisungen verschachtelt haben. Die einfachste verschachtelte if-Anweisung hat die Form: wenn … dann … sonst … wenn … dann … fi … fi. Wenn-Anweisung kann jedoch mit beliebiger Komplexität verschachtelt werden.
Siehe auch das Übergeben von Argumenten an ein Bash-Skript, das zeigt, wie Bedingungen verwendet werden, um von der Befehlszeile übergebene Parameter zu verarbeiten.
Die Bash-Shell stellt andere Programmierkonstrukte wie for-Loops, while-Loops und arithmetische Ausdrücke bereit.