#1 Le 23/11/2013, à 15:58
- Dany007
Résolu - Problème avec WHILE
Bonjour à tous
Voilà, je rencontre un léger souci avec la commande WHILE...
C'est-à-dire que lorsque j'effectue le script ci-dessous, je n'arrive pas à sortir de la boucle.
Quelqu'un aurait-il une idée par hasard ?
========================================
Voici le script:
#!/bin/bash
echo "répondez OUI ou NON"
read rep
while [ $rep != "OUI" ] & [ $rep != "NON" ]
do
echo "Répondez par OUI ou par NON s'il vous plait."
read rep
done
==============
Voici le résultat:
~/Documents/TD1$ vi exo1
répondez OUI ou NON
OUI
Répondez par OUI ou par NON s'il vous plait.
non
Répondez par OUI ou par NON s'il vous plait.
NON
Répondez par OUI ou par NON s'il vous plait.
OUI
Répondez par OUI ou par NON s'il vous plait.
oui
Répondez par OUI ou par NON s'il vous plait.
D'avance, merci de votre aide.
Dany
Dernière modification par Dany007 (Le 23/11/2013, à 17:12)
Hors ligne
#2 Le 23/11/2013, à 16:04
- Grünt
Re : Résolu - Problème avec WHILE
while [ $rep != "OUI" ] & [ $rep != "NON" ]
"Tant que la réponse est différente de OUI et qu'elle est différente de NON."
( D'ailleurs, en bash, le "et logique" s'écrit avec deux esperluettes.)
Dernière modification par Grünt (Le 23/11/2013, à 16:05)
Red flashing lights. I bet they mean something.
Hors ligne
#3 Le 23/11/2013, à 17:11
- Dany007
Re : Résolu - Problème avec WHILE
Hello Grünt
Un grand merci
Bon week-end
Dany
Hors ligne
#4 Le 23/11/2013, à 22:55
- nesthib
Re : Résolu - Problème avec WHILE
while read -p "répondez OUI ou NON" rep
do
case "$rep" in
o|O|oui) commande1 ; break ;;
n|N|non) commande2 ; break ;;
esac
done
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#5 Le 23/11/2013, à 23:26
- Braun
Re : Résolu - Problème avec WHILE
Ou encore, du même tabac:
#!/bin/bash
while read -p "répondez OUI ou NON " rep
do
case "$rep" in
o*|O*) echo commande 1 ; break ;;
n*|N*) echo commande 2 ; break ;;
esac
done
Hors ligne