Question bete de while en bash+verfi saisie

xavman -  
xavman001 Messages postés 57 Statut Membre -
bonjour à tous, voila qui question bien bête et facile pour un développeur...

mais j'en suis pas, moi je suis admin réseau donc mes compétences en dev s'arrete aux scripts shell bash...

donc ma question est :

j'ai l'habitude de réaliser des scripts qui en fonction de la saisie de l'utilisateur feront telle ou telle chose et au passage si l'utilisateur saisie un caractère interdit le script s'arrête.

moi je voudrais qu'au lieu de s'arrêter mon script reprenne la saisie avec un message d'avertissement,

donc dans le style (avec l'arrêt) :

echo -e "\n Openssh-chroot is now ready to be installed, do you want to continue ? (Yes or No) " read CHOICE

case $CHOICE in
yes | y )
echo -e "\n Installing Openssh-chroot... " && sleep 2
make install
# check make install status
case $? in
0 )
echo -e "\n Installation successfull !" && sleep 4
;;
* )
echo -e "\n Installation of Openssh-chroot has encountered some errors, cannot continue.
Exiting with error code $ERR_MAKE "
exit $ERR_MAKE
;;
esac
;;
no | N )
echo -e "\n Installation of Openssh-chroot cancelled, exiting... "
exit $ERR_CANCELLED
;;
* )
echo -e " Please answer yes or no ! "
exit $ERR_BAD_ANSWER
esac
;;
esac



voila...


d'ailleurs si vous avez d'autres remarques par ex sur l'analyse du code retour (genre une meilleure facon de faire) je suis tout ouïe.

si vous vous demandez a quoi je destine le script (complet) c'est à la mise en place de service ssh chrootés.

merci d'avance...
A voir également:

1 réponse

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Tu peux essayer une boucle comme celle ci :
[jp@Mandrake tmpfs]$ cat script_essai.sh
#!/bin/bash
#script_essai.sh

echo -e "Entrer Yes ou No."
read choice
while [ "$choice" != "Yes" ] && [ "$choice" != "No" ]
do echo -e "Ce n'est pas le bon mot ! Recommencez s'il vous plaît. Merci."
        read choice
done
echo -e "Merci et @ bientôt.."
exit 0


[jp@Mandrake tmpfs]$ ./script_essai.sh
Entrer Yes ou No.
yes
Ce n'est pas le bon mot ! Recommencez s'il vous plaît. Merci.
no
Ce n'est pas le bon mot ! Recommencez s'il vous plaît. Merci.
Yes
Merci et @ bientôt..
[jp@Mandrake tmpfs]$
;-))
2
xavman001 Messages postés 57 Statut Membre
 
merci pour ta réponse.

c'était vraiment une question bete...

@+++
0