IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Aide test d'entrée boucle while


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 4
    Par défaut Aide test d'entrée boucle while
    Bonjour je suis en train de faire un script seulement ma fonction "while" ne fonctionne pas, en effet, je souhaiterais mettre deux conditions pour tester la saisie de 2 caractères, soit O soit N.

    echo "Continuer (si oui tapez O sinon tapez N?) "
    read reponse2
    while [ "$reponse2" != "N" ] || [ "reponse2" != "O"]

    do

    echo "Mauvaise saisie du choix, recommencez :"
    read reponse2

    if [ $reponse2 == "N" ]
    then
    reponse=0
    else reponse=1
    fi
    done

    Merci d'avance

  2. #2
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour,
    Je ne sais pas ce que tu entends par "ca ne fonctionne pas" mais deja a tout hasard:
    - il manque un $ devant le deuxieme test

    - en mettant des doubles quotes tu testes la chaine reponse2 et non pas la variable reponse2

    - le test ne devrait pas plutot etre ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while not cond1 and not cond2
    Ceci dit j'ai une faible experience des scripts alors je suis peut etre completement a cote

  3. #3
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Tonton Fred à raison.
    Pour être sûr du résultat d'un test, inverse les conditions afin de voir ce que cela donne.
    Dans ton cas, l'inverse de :

    while [ "$reponse2" != "N" ] || [ "reponse2" != "O"]

    est :

    while [ "$reponse2" = "N" ] && [ "reponse2" = "O"]
    La variable reponse2 ne peut pas être égale à la fois à "N" et à "O", donc ton test est incorrect.

    Le test correct est :

    while [ "$reponse2" != "N" ] && [ "reponse2" != "O"]

Discussions similaires

  1. Test -n et boucle while
    Par Bktero dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 24/10/2012, 12h58
  2. Réponses: 4
    Dernier message: 20/04/2010, 11h24
  3. Réponses: 12
    Dernier message: 18/11/2008, 21h42
  4. [MySQL] gestion d'affichage entre deux boucle while mysql_fetch_array()
    Par tkwleboss dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/11/2007, 21h37
  5. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo