Olá,
Sempre uso um script assim:
#!/bin/bash
Escolhido="X"
while [ "$Escolhido" != "S" ] && [ "$Escolhido" != "N" ]; do
echo -ne "Escolha [S] SIM ou [N] NÃO = [ ]\b\b"
read -sn 1 Escolhido
if [ "$Escolhido" == "S" ] || [ "$Escolhido" == "s" ]; then
Escolhido="S"
else
if [ "$Escolhido" == "N" ] || [ "$Escolhido" == "n" ]; then
Escolhido="N"
else
echo -ne "\a\r"
fi
fi
done
echo $Escolhido
Se quizer que o padrão, isto é, se pressionar Enter direto, seja Sim,
então deixe assim:
Escolhido="X"
while [ "$Escolhido" != "S" ] && [ "$Escolhido" != "N" ]; do
echo -ne "Escolha [S] SIM ou [N] NÃO = [S]\b\b"
read -sn 1 Escolhido
if [ "$Escolhido" == "S" ] || [ "$Escolhido" == "s" ] || [ "$Escolhido" == ""
]; then
Escolhido="S"
else
if [ "$Escolhido" == "N" ] || [ "$Escolhido" == "n" ]; then
Escolhido="N"
else
echo -ne "\a\r"
fi
fi
done
echo $Escolhido
Se quizer que o padrão seja Não, então deixe assim:
Escolhido="X"
while [ "$Escolhido" != "S" ] && [ "$Escolhido" != "N" ]; do
echo -ne "Escolha [S] SIM ou [N] NÃO = [N]\b\b"
read -sn 1 Escolhido
if [ "$Escolhido" == "S" ] || [ "$Escolhido" == "s" ]; then
Escolhido="S"
else
if [ "$Escolhido" == "N" ] || [ "$Escolhido" == "n" ] || [ "$Escolhido" ==
"" ]; then
Escolhido="N"
else
echo -ne "\a\r"
fi
fi
done
echo $Escolhido
Após isso a resposta somente pode ser "S" ou "N" em maiúsculo e está na
variável "Escolhido".
--
[]'s
Claudio Polegato Junior
Um peregrino de Problemas; Um pergaminho de Soluções.
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html