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 :

Attribution de variable après un pipe


Sujet :

Linux

  1. #1
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut Attribution de variable après un pipe
    Bonjour

    Je souhaite faire une comparaison des ocurrences du mot toto dans 2 fichiers.
    Pour cela, voici ce que j'ai écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    cat alias_v2.html | grep toto | wc -l
    var0=$_ ;
     
    cat alias_v1.html | grep toto | wc -l
    var1=$_ ;
     
     
    if [ "$var0" == "$var1" ]
    then..
    Cela ne marche pas, $var0 et $var1 sont vides, pourtant lorsque j'execute le script, j'obtiens bien sur l'écran le résultat des 2 pipes... Donc, comment fait-on pour les attribuer à var0 et var1 ?

    Merci et bonnes fêtes...

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    tout dépend de ton shell ( car tu ne précise pas )

    en bash :

    var_0=$(cat alias_v2.html | grep toto | wc -l )
    var_1=$(cat alias_v1.html | grep toto | wc -l )

    if [ $var_0 -eq $var_1 ]
    then ...

  3. #3
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Génial, ça marche, merci, mais il y a encore un problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_0=$(cat alias_v2.html | grep toto | wc -l )
    si je fais ça, ça me donne bien un nombre > 0

    mais si j'ajoute ce champ WGET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_0=$(wget "URL" -O alias_v2.html | cat alias_v2.html | grep toto | wc -l )
    ça me donne toujours 0, pourquoi ? Est-ce qu'on est obligé de passer par 2 commandes une après l'autre pour que j'obtienne un nombre > 0 ?

    PS : je suis en bash.

  4. #4
    Membre habitué Avatar de nicolas66
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 326
    Points : 146
    Points
    146
    Par défaut
    Bon je me suis rapidement intéressé à ton problème et je crois avoir trouvé d'où venait l'erreur : tu demandes en fait de créer un fichier avec la commande wget puis d'afficher son contenu. Or les pipes servent à rediriger la sortie d'une commande vers l'entrée de la suivante. Tu dois donc ici te passer du fichier intermédiaire (en plus ca sera plus simple).

    Voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_0 = $(wget "URL" -O - | cat - | grep toto | wc -l)
    Le tiret de la commande wget lui indique qu'il faut afficher le résultat sur la sortie standard et non dans un fichier. De plus j'ai rajouté l'option q qui permet de ne pas fournir d'informations lors du téléchargement d'un fichier.

    Le tiret de la commande cat lui indique qu'il faut afficher le résultat provenant de la sortie standard, ici le résultat de la commande wget.

    Voilà, j'espère que avoir correctement répondu à ton problème tout en t'ayant fait comprendre la solution que je te proposais


    Nico.

  5. #5
    LFC
    LFC est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Février 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 106
    Points : 70
    Points
    70
    Par défaut
    Effectivement, je comprends maintenant...

    Je te remercie.

    Ciao.

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

Discussions similaires

  1. Requète MYSQL et attribution de variable
    Par friiitz dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/06/2006, 12h24
  2. [Sécurité] Effacer une variable après insertion ?
    Par psychoBob dans le forum Langage
    Réponses: 7
    Dernier message: 24/04/2006, 00h34
  3. Réponses: 4
    Dernier message: 18/02/2006, 17h48
  4. Réponses: 2
    Dernier message: 20/12/2005, 17h48
  5. Réponses: 2
    Dernier message: 23/10/2005, 19h05

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