Quando estamos escrevendo um script em shell, é comum nos depararmos com a necessidade de interagir com o usuário para obter uma resposta em formato de sim ou não. Nesses casos, é importante implementar uma validação para garantir que o usuário informe apenas as opções esperadas (Y ou N) e evitar possíveis erros.
Existem várias maneiras de lidar com essa situação, mas neste artigo vamos mostrar uma abordagem simples e eficiente utilizando uma estrutura de repetição e um comando condicional.
Primeiro, vamos criar uma variável para armazenar a resposta do usuário:
resposta=""
Em seguida, utilizaremos um loop para solicitar a resposta até que o usuário informe uma opção válida:
while [[ ! ( "$resposta" == "Y" || "$resposta" == "N" ) ]]; do
read -p "Digite Y para sim ou N para não: " resposta
done
Neste exemplo, utilizamos o operador de negação (!) para verificar se a resposta é diferente de Y ou N. Caso seja, o loop continua executando e o usuário é solicitado novamente a informar uma resposta.
Assim que o usuário informar uma resposta válida, podemos utilizar um comando condicional para executar a ação desejada:
if [[ "$resposta" == "Y" ]]; then
# Ação para resposta Y
else
# Ação para resposta N
fi
No exemplo acima, utilizamos o comando if
para verificar se a resposta é igual a Y. Caso seja, executamos a ação desejada para essa resposta. Caso contrário, executamos a ação para a resposta N.
É importante lembrar de substituir as ações de exemplo pelos comandos ou funções que você deseja executar em seu script.
Essa abordagem garante que o usuário informe apenas as opções esperadas (Y ou N) e evita que o script continue sua execução com uma resposta inválida. Além disso, utilizando um loop, podemos solicitar a resposta quantas vezes forem necessárias até obtermos uma opção válida.