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

Responder a