Pergunta

Ok, então eu tentei procurar isso no Google e não consigo encontrar uma resposta. O que estou tentando fazer é criar uma declaração de caso no Bash, mas se o usuário inserir um número diferente do listado, ele sairá do script. Como faço para fazer um erro e, em seguida, solicito que o usuário selecione uma das opções?

por exemplo, minha declaração de caso

case $ans in
1) echo "Running Project 1..."
   sleep 2
   ./project1.sh
;;
2) echo "Running Project 2..."
   sleep 2
   ./project2.sh
;;
Qq) echo "Exiting"
    exit
;;
esac

Portanto, quaisquer opções que não sejam 1, 2, qq, ele dará um erro dizendo seleção inválida, tente novamente.

Foi útil?

Solução

Você precisa de um pouco de loop e uma variável booleana como essa:

flag = true
while [  $flag ]; do
    case $ans in
        1) echo "Running Project 1..."
           sleep 2
           ./project1.sh
        ;;
        2) echo "Running Project 2..."
           sleep 2
           ./project2.sh
        ;;
        Qq) echo "Exiting"
            flag = false
        ;;
    esac
done
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top