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

Linux Discussion :

test de string dans un while


Sujet :

Linux

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Par défaut test de string dans un while
    Bonjour tout le monde,

    Alors voilà je travail sur un script shell et je dois tester une variable contenant un caractère et si celui ne remplie pas les attentes escompté on redemande à l'utilisateur de le re-remplir (un classique quoi).

    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    read -p "Indiquer ce que voulez faire, affichez les (s)tatistiques d'une carte ou paramétrer (i)Ptable : " action
    while [ $action != "i"  ] || [ $action != "s"  ]
    do
    	echo "Valeur de retour incorrect !!!"
    	read -p "Indiquer ce que voulez faire, affichez les (s)tatistiques d'une carte ou paramétrer (i)Ptable : " action
    done

    Mais j'ai quelque soucis en effet malgré que la variable prend bien les paramètres rentré le test considère que celui-ci ne remplie jamais les conditions.

    PS : J'ai déjà essayé différente syntaxe (qui fonctionne pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while [ "$action" != "i"  ] || [ "$action" != "s"  ]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while [[ "$action" != "i"  ]] || [[ "$action" != "s"  ]]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while [[ if ( "$action" != "i")  ]] || [[ if ( "$action" != "s" )  ]]
    Alors oui le dernier je suis allée très loin pour le chercher ^^


    D'avance merci pour vos réponses ou même vos conseil car il est possible que ma syntaxe ne soit pas forcément optimiser.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 624
    Par défaut
    Bonjour,

    Code pseudo-code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tant que |action| ne vaut pas «i» et que |action| ne vaut pas «s»
    afficher erreur
    fin tant
    ou alors
    Code pseudo-code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    jusqu'à ce que |action| vaille «i» ou que |action| vaille «s»
    afficher erreur
    fin jusquà
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Par défaut
    C'est plutôt ça :

    Code pseudo-code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tant que |action| ne vaut pas «i» OU que |action| ne vaut pas «s»
    afficher erreur
    fin tant

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 624
    Par défaut
    et ça fonctionne ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Par défaut
    Non justement peu importe les paramètres que je mets il considère que se ne sont pas les bon.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 624
    Par défaut
    bon, maintenant que tu as essayé toutes les façon de faire avec "ou", est-ce que tu vas essayer avec "et" ?

    parce que avant d'avancer quelque chose, je teste, donc je vois que ça fonctionne.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2008
    Messages : 25
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    bon, maintenant que tu as essayé toutes les façon de faire avec "ou", est-ce que tu vas essayer avec "et" ?

    parce que avant d'avancer quelque chose, je teste, donc je vois que ça fonctionne.
    Alors je m'attendais pas à ça, en effet avec ET cela fonctionne parfaitement donc ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    read -p "Indiquer ce que voulez faire, affichez les (s)tatistiques d'une carte ou paramètrer (i)Ptable : " action
    while [ "$action" != "i" ] && [ "$action" != "s" ]
    do
    	echo "Valeur de retour incorrect !!!"
    	read -p "Indiquer ce que voulez faire, affichez les (s)tatistiques d'une carte ou paramètrer (i)Ptable : " action
    done
    Je suis vraiment surpris car pour moi ma variable action ne peut avoir que une seule valeur et la mon "while" attend que la variable action ne soit pas à la fois S et I. Mais si cela fonctionne cela me va très bien.

    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. test sur string dans un combobox
    Par mehdi.cheddani dans le forum Développement Windows
    Réponses: 2
    Dernier message: 04/02/2013, 14h15
  2. [MySQL] Table html avec boucle test if dans un while
    Par dancom5 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/11/2011, 19h27
  3. Test d'une String dans un Iterator ( <s:iterator, <s:if )
    Par chezwam56 dans le forum Struts 2
    Réponses: 11
    Dernier message: 23/08/2011, 17h31
  4. Recherche d'un String dans un String ?
    Par apen2k2 dans le forum Langage
    Réponses: 9
    Dernier message: 14/04/2003, 12h08
  5. Réponses: 3
    Dernier message: 25/11/2002, 15h15

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