Você pode colocar o read
e seu case
em um while
loop e break
fora quando a condição for satisfeita:
while : ; do
echo "yes or no?"
read ans
case $ans in
[yY]*)
echo "yes"
break
;;
[nN]*)
echo "no"
break
;;
*)
echo "yes or no only"
;;
esac
done
O while : ; do ... done
representa um loop infinito. break
sai de um loop for
, while
ou until
. Use break
para sair, caso a resposta seja y
ou n
, caso contrário, o loop continuará.