GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwendung von und in der Bash-While-Schleife

Der [] Operator in Bash ist syntaktischer Zucker für einen Aufruf von test , die in man test dokumentiert ist . „oder“ wird durch ein angehängtes -o ausgedrückt , aber Sie brauchen ein "und":

while [ $guess != 5 -a $guess != 10 ]; do

Es gibt 2 richtige und tragbare Möglichkeiten, um das zu erreichen, was Sie wollen.
Gute alte shell Syntax:

while [ "$guess" != 5 ] && [ "$guess" != 10 ]; do

Und bash Syntax (wie Sie angeben):

while [[ "$guess" != 5 && "$guess" != 10 ]]; do

Der tragbare und robuste Weg ist die Verwendung eines case Aussage statt. Wenn Sie nicht daran gewöhnt sind, brauchen Sie vielleicht ein paar Blicke, um sich mit der Syntax vertraut zu machen.

while true; do
    case $guess in 5 | 10) break ;; esac
    echo Your answer is $guess. This is incorrect. Please try again.
    echo -n "What is your guess? "
    read guess  # not $guess
done

Ich habe while true verwendet aber Sie könnten tatsächlich den case verwenden Aussage dort direkt. Es wird jedoch schwierig zu lesen und zu pflegen.

while case $guess in 5 | 10) false;; *) true;; esac; do ...

Linux
  1. Verwenden von Bash für die Automatisierung

  2. Erkundung der Podman RESTful API mit Python und Bash

  3. Bash-Anfängerserie Nr. 8:Schleifen in Bash

  4. Suchen und kopieren Sie die Datei mit Bash

  5. Linux-Bash. für Schleife und Funktion, zum Addieren von Zahlen

Bash bis Loop

Bash brechen und fortfahren

Bash Exit-Befehl und Exit-Codes

Bash-Skripting – While- und Until-Schleife mit Beispielen erklärt

Bash-Scripting Teil 2 – For- und While-Schleifen mit Beispielen

Erstellen von Klassen und Objekten mit Bash-Scripting