So habe ich ein Problem zu verstehen, wie man eine Bedingung Schleife. Hier ist mein Beispiel:Bash-Skript - Während Bedingung mit wenn/dann
#!/bin/bash
echo " Which team do you prefer, FSU or UF?"
read -r TEAM
while [ "$TEAM" != "FSU" || "UF" ]; do
echo "That was not one of your choices. Please choose FSU or UF"
if [ "$TEAM" == "FSU" ]; then
echo "You chose the better team"
else [ "$TEAM" == "UF" ];
echo "You did NOT choose the better team"
fi
done
Im Grunde, was ich suche ist eine Benutzereingabe und wenn diese Bedingung nicht erfüllt ist, würde es Schleife zurück, bis der richtige Eingang erfüllt ist. Was mache ich falsch? In diesem Beispiel erhalte ich einen Fehler zurück, wenn ich eine Eingabe außerhalb von FSU oder Uf wähle als:
"./test.sh: Zeile 4: [: fehlende`] ' ./test.sh: Zeile 4: UF: Befehl nicht gefunden "
Wenn ich jedoch FSU oder UF auswähle, bekomme ich den gleichen Fehler.
'[" $ TEAM "! =" FSU "|| "UF"] 'ist keine gültige Syntax. Sie müssen '$ TEAM' mit jeder möglichen Zeichenfolge vergleichen – fedorqui
Das Hauptproblem ist die while Zeile sollte' while ["$ TEAM"! = "FSU" || lesen "$ TEAM"! = "UF"]; mach es. Ansonsten enden Sie Ihre Schleife ("fertig") an der falschen Stelle. – Phylogenesis
Drittens scheint es, dass die Ergebnisse Ihrer "if" -Klausel rückwärts sind, wenn man auf [diese Seite] (https://en.wikipedia.org/wiki/Florida%E2%80%93Florida_State_football_rivalry#Game_results) schaut. – Phylogenesis