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 :

Problème script bash (comparaison de string)


Sujet :

Linux

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Problème script bash (comparaison de string)
    Bonjour à tous, après avoir lu divers informations sur les scripts bash j'essaye de comparer des strings et là, franchement, je sèche...

    Y aurait-il quelqu'un pour m'expliquer ce résultat??

    Merci beaucoup!

    Le code :
    datauj=$(date +%m/%d/%Y);
    var="01/26/2011";

    echo $datauj $var "Are the two dates"
    if [[ $datauj!=="$var" ]]
    then
    echo "Not equal";
    elif [[ "$datauj"=="$var" ]]
    then
    echo "Equal"
    fi

    var="01/27/2011";

    echo $datauj $var "Are the two dates"
    if [[ $datauj!=="$var" ]]
    then
    echo "Not equal";
    elif [[ "$datauj"=="$var" ]]
    then
    echo "Equal"
    fi

    Résultat:

    01/26/2011 01/26/2011 Are the two dates
    Not equal
    01/26/2011 01/27/2011 Are the two dates
    Not equal

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/bash
     
    datauj=$(date +%m/%d/%Y)
    var="01/26/2011"
     
    echo "$datauj $var Are the two dates"
     
    if [[ $datauj != $var ]]
    then echo "Not equal"
    else echo "Equal"
    fi
     
    var="01/27/2011"
     
    echo "$datauj $var Are the two dates"
    if [[ $datauj != $var ]]
    then echo "Not equal"
    else echo "Equal"
    fi
    attention à respecter les espaces dans les tests
    elif n'est pas nécessaire ici
    !== n'existe pas

    tu noteras que je n'utilise pas de guillemets entre [[ ]], parce qu'il n'y sont pas indispensables, contrairement aux [ ] simples où les guillemets sont obligatoires.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Hello,

    Merci pour la réponse rapide.

    En fait, j'ai fait plein de tests avec le même genre de tests que toi :
    != et = , sans ""

    Mais je n'avais pas mis d'espaces... >_< voilà pourquoi cela plantait.


    Pour le elif, je l'ai laissé car je fais des tests "plus compliqués" en comparant plusieurs date et ma structure de if est plutôt du type :

    if ... elif ... else ... fi




    Quoiqu'il en soit, merci beaucoup du coup de main. J'ai encore du mal avec la rigueur d'écriture dans Unix.

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

Discussions similaires

  1. [bash] Comparaison de string
    Par NicX2610 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 09/08/2010, 09h42
  2. problème execution d'un script bash
    Par molbento dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 24/08/2009, 16h59
  3. [débutant] [BASH] problème script backup
    Par julien.63 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/04/2008, 18h56
  4. [XSLT]Problème sur une comparaison if avec des strings
    Par LoDev dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 18/01/2008, 09h27
  5. Problème de script Bash dans script Perl
    Par Aviator dans le forum Langage
    Réponses: 3
    Dernier message: 03/01/2008, 20h50

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