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 :

Comparaison de deux chaines


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Responsable test de charge
    Inscrit en
    Février 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable test de charge

    Informations forums :
    Inscription : Février 2006
    Messages : 186
    Par défaut Comparaison de deux chaines
    Bonjour à tous,

    Voilà j'ai deux variables en shell script que je souhaite comparé. En voici la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Get="3 2 2 4 5 2"
    Expect="3 2 2 4 5 2"
    Je souhaite donc les comparer et relever une inégalité ou une égalité.
    Le code associé est le suivi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if [[ $Get = $Expect ]]; 
    then
              echo "OK" 
    else
              echo "KO" 
    fi
    Cependant, je suis toujours dans le cas du KO, quelques soit la câîne prise en compte. C'est à dire même si j'impose des valeurs égales.

    Je ne voit pas l'erreur, si quelqu'un la distingue, je le remercie de me la communiquer par avance.

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par sam.fet
    Bonjour à tous,

    Voilà j'ai deux variables en shell script que je souhaite comparé. En voici la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Get="3 2 2 4 5 2"
    Expect="3 2 2 4 5 2"
    Je souhaite donc les comparer et relever une inégalité ou une égalité.
    Le code associé est le suivi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if [[ $Get = $Expect ]]; 
    then
              echo "OK" 
    else
              echo "KO" 
    fi
    Cependant, je suis toujours dans le cas du KO, quelques soit la câîne prise en compte. C'est à dire même si j'impose des valeurs égales.

    Je ne voit pas l'erreur, si quelqu'un la distingue, je le remercie de me la communiquer par avance.
    Moi j'ai OK pour ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
     
    Get="3 2 2 4 5 2"
    Expect="3 2 2 4 5 2"
     
    if [ "$Get" = "$Expect" ];
    then
              echo "OK" 
    else
              echo "KO" 
    fi
    Jc

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 892
    Par défaut
    Normalement; ce script est plus correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
     
    Get="3 2 2 4 5 2"
    Expect="3 2 2 4 5 2"
     
    if [ $Get = $Expect ]
    then
              echo "OK"
    else
              echo "KO"
    fi
    En espérant t'avoir aidé.

    @++

    Arghhh, je me suis fait owned par fearyourself !
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    [[ me semble plus rapide que [ en bash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ typeset -i i=0; time while (( ++i '<' 100000 )); do [[ x = y ]]; done
     
    real    0m1.833s
    user    0m1.748s
    sys     0m0.020s
    $ typeset -i i=0; time while (( ++i '<' 100000 )); do [ x = y ]; done
     
    real    0m2.213s
    user    0m2.104s
    sys     0m0.052s
    et les deux sont corrects

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    man test
           test EXPRESSION
           [ EXPRESSION ]
     
    man bash
           [[ expression ]]

  5. #5
    Membre éclairé
    Profil pro
    Responsable test de charge
    Inscrit en
    Février 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable test de charge

    Informations forums :
    Inscription : Février 2006
    Messages : 186
    Par défaut
    Merci de ta réponse GLDavid, la solution que tu préconise est fonctionnelle.

  6. #6
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 892
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 892
    Par défaut
    De rien
    Au plaisir
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. comparaison de deux chaines
    Par Ganondorf dans le forum Langage
    Réponses: 10
    Dernier message: 18/10/2007, 22h55
  2. Comparaison de deux chaines de caractere
    Par arnogb69 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/08/2007, 21h39
  3. Comparaison de deux chaines en GTK+
    Par Arvel dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 29/03/2007, 17h26
  4. comparaison de deux chaines de caractères
    Par zazou41 dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2006, 14h26
  5. Réponses: 5
    Dernier message: 06/10/2003, 17h49

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