[Bash] Besoin d'aide

Besoin d'aide [Bash] - Shell/Batch - Programmation

Marsh Posté le 21-04-2003 à 23:56:20    


echo "Voulez vous continuer ? (y/n)"
read VAR2
 
case ${VAR2}
        in
        y) echo "Vous avez choisi de continuer"
                mes commandes
                ;;
        n) echo "Vous avez choisi de vous arrêter"
                mes commandes
                ;;
        *) echo "Entrer soit "y" soit "n" et pas autre chose svp"
                ???
                ;;
esac

 
 
Donc comme vous le voyez ça se passe avec une fonction 'case'.
Le truc c'est que :
 
y) => correspond à oui, ici pas de problème
n) => correspond à non, ici pas de problème
*) => si l'utilisateur rentre ni "y" ni "n", ya un problème, donc j'aimerais lui dire "euhh, stp, rentre soit "y" soit "n" mais pas autre chose" => retour au début de la fonction case (pour que l'utilisateur puisse à nouveau choisir y ou n).
 
Comment faire ? il me faudrait une sorte de "return" ou des étiquettes/goto (mais ça n'existe pas je crois)...
 
donc en fait, que mettre là ou il y a les 3 points d'intérogation ? :??:


Message édité par Z-Axis le 21-04-2003 à 23:56:50

---------------
x,y,z
Reply

Marsh Posté le 21-04-2003 à 23:56:20   

Reply

Marsh Posté le 22-04-2003 à 00:05:11    

Bin while en bash, ça existe pas ? :??:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-04-2003 à 09:08:43    

Reply

Marsh Posté le 22-04-2003 à 11:44:52    

Code :
  1. *) echo "Please, enter yes (type y) or no (type n)"
  2.  while [ "$VAR2" != "y" || "$VAR2" != "n" ]; do
  3.  read VAR2
  4.  done
  5.  ;;

 
 
Il veut pas  :cry:  
 
: line 37: [: missing `]'
: line 37: m: command not found
 
Pourquoi il me parle de []  :??:


Message édité par Z-Axis le 22-04-2003 à 11:45:10

---------------
x,y,z
Reply

Marsh Posté le 22-04-2003 à 12:03:00    

Puis même si ça marchait, ça irait pas.
 
Il faut absolument que je revienne au début de 'case' !!


---------------
x,y,z
Reply

Marsh Posté le 22-04-2003 à 12:30:16    

Z-Axis a écrit :

Puis même si ça marchait, ça irait pas.
 
Il faut absolument que je revienne au début de 'case' !!


Bin c'est bon, suffit de faire un algo qui va bien, du style :

Code :
  1. echo "Voulez vous continuer ? (y/n)"
  2. while [ "$VAR2" != "y" || "$VAR2" != "n" ]; do
  3. read VAR2
  4. case ${VAR2}
  5.        in
  6.        y) echo "Vous avez choisi de continuer"
  7.                mes commandes
  8.                ;;
  9.        n) echo "Vous avez choisi de vous arrêter"
  10.                mes commandes
  11.                ;;
  12.        *) echo "Entrer soit "y" soit "n" et pas autre chose svp"
  13.                ???
  14.                ;;
  15. esac
  16. done


 
Bon après ma syntaxe doit être toute pourrie vu que j'y connais rien mais l'idée est là.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-04-2003 à 13:44:28    

Pas con [:meganne]
 
Seul problème, ça bloque tjs au while. Je sais pas ou je couille, la syntaxe doit pas etre bonne :/


---------------
x,y,z
Reply

Marsh Posté le 22-04-2003 à 13:51:13    

http://www.linux-france.org/prj/ed [...] /t378.html
TP6.
 
[edit]
trouvé en tapant "bash exemple while" dans google... :sarcastic:


Message édité par skeye le 22-04-2003 à 13:52:24
Reply

Marsh Posté le 22-04-2003 à 14:15:12    

Merci ça marche.
 
BOn maintenant faut que je fasse un truc au tout début pour tester si l'utilisateur est en root ou pas (mon script doit être exécuter en root)  :o
 
edit : merci $UID  :o


Message édité par Z-Axis le 22-04-2003 à 14:16:01

---------------
x,y,z
Reply

Marsh Posté le 23-04-2003 à 15:46:16    

Z-Axis a écrit :

Merci ça marche.
 
BOn maintenant faut que je fasse un truc au tout début pour tester si l'utilisateur est en root ou pas (mon script doit être exécuter en root)  :o
 
edit : merci $UID  :o


 
c'est 1 simple if sur le $LOGNAME ou $UID selon les version UNIX/LINUX/BSD exit 1 ou contnuer le script


---------------
I love vi editor. it's the best one.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed