Question

OK, j'ai donc essayé de rechercher cela sur Google et je n'arrive pas à trouver une réponse. Ce que j'essaie de faire, c'est créer une instruction de cas dans Bash, mais si l'utilisateur entre un numéro différent de celui répertorié, il sort simplement du script. Comment puis-je le faire donner une erreur, puis demander à l'utilisateur de sélectionner l'une des options?

Par exemple, ma déclaration de cas

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

Ainsi, toutes les options autres que 1, 2, QQ, cela donnera une erreur en disant la sélection non valide, réessayez.

Était-ce utile?

La solution

Vous avez besoin d'une boucle de temps et d'une variable booléenne comme celle-là:

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top