したがって、条件をループする方法を理解する上で問題があります。ここに私の例である:Bashスクリプト - 条件付きif/then
#!/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
基本的に、私は何を探していますが、ユーザの入力であり、その条件が満たされない場合には、正しい入力が満たされるまでループバックだろう。 私は何が間違っていますか?この例では、FSUまたはUf以外の入力を次のように選択した場合、エラーが返されます。
"./ test.sh:行4:[:missing:]] ./test.sh:行4: UF:コマンドが見つかりません "
しかし、FSUまたはUFを選択した場合、同じエラーが発生します。
'[" $ TEAM "!=" FSU "|| "UF"] 'は有効な構文ではありません。 '$ TEAM'とそれぞれの可能な文字列を比較する必要があります – fedorqui
大きな問題はwhile行が' ["$ TEAM"!= "FSU" || "$ TEAM"!= "UF"];します。それ以外では、間違った場所でループを終了しています( 'done')。 – Phylogenesis
第3に、[このページ](https://en.wikipedia.org/wiki/Florida%E2%80%93Florida_State_football_rivalry#Game_results)を見ると、あなたの 'if'節の結果は後方にあるようです。 – Phylogenesis