sexta-feira, fevereiro 14, 2025
InícioDesenvolvimentoPrevenção de erros - Lidando com Y/N no shell script

Prevenção de erros – Lidando com Y/N no shell script

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.

RELATED ARTICLES

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

This site uses Akismet to reduce spam. Learn how your comment data is processed.

mais populares

comentários mais recentes