При выполнении приведенного ниже кода я хотел бы прочитать ответ, введенный пользователем, пока он не станет одним из 6 возможных ответов ([abcABC]
), в противном случае перейдите к следующему циклу.
Однако,он не выходит из цикла while при вводе одного из принятых ответов.
Я пробовал []
и [[]]
для условий, я пытался поместить все условия в одну пару квадратных скобок,Я пытался использовать |
и ||
, ни один из них не работал должным образом.
while [ "$ans" != "a" ] || [ "$ans" != "A" ] || [ "$ans" != "b" ] || \
[ "$ans" != "B" ] || [ "$ans" != "c" ] || [ "$ans" != "C" ]; do
read ans
case $ans in
[aA]) echo "aA" ;;
[bB]) echo "bB" ;;
[cC]) echo "cC" ;;
*) echo "Try again." ;;
esac
done
Он должен читать в цикле, пока не будет дан один из принятых ответов;тогда следует продолжить со следующим кодом (если есть).