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

Langage Perl Discussion :

Comment récupérer une sortie d'une commande schell dans un script perl


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 27
    Points
    27
    Par défaut Comment récupérer une sortie d'une commande schell dans un script perl
    Dans mon script perl je fais une comparaison de deux fichiers binaires avec la commande
    "diff" le genre ( sur la console) :
    narmika@: diff test1.g test2.g

    si les deux fichiers différent, la console affiche "diffère" sinon elle n'affiche rien.

    Pour integrer ceci ds mon script perl j'ai mis :

    $commande = "diff $test1 $test2";

    open(COMMAND,"$commande |");
    while(<COMMAND>){
    print "$_";
    }
    je me demande comment faire pour stocker le résultat soit dans un fichier soit un un message qui s'affiche!!!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,

    la sortie d'une commande on peut la récupérer avec les apostrophes inverses `` ou avec qx{}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $commande = `diff $test1 $test2`;
    print $commande;
    --
    lami20j

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Citation Envoyé par lami20j
    Salut,

    la sortie d'une commande on peut la récupérer avec les apostrophes inverses `` ou avec qx{}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $commande = `diff $test1 $test2`;
    print $commande;
    Et en une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print `diff $test1 $test2`;

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Points : 27
    Points
    27
    Par défaut
    Oui, t'as raison pr les dux crochets, mais pr le print '......', ca ne marche pas, apparement le résultat est binaire soit un'0' soit un '1':

    $test = `diff $test2 $test1`;
    if (!$test)
    { print "Les deux fichiers diffèrent";
    }

    J'ai fait alors ainsi, et ça a marché, donc 0 si ca diffère et un 1 si c identik..

    Tu en penses quoi!! ( ben j'ai fait ke tatonner..)

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,
    Citation Envoyé par narmika
    Oui, t'as raison pr les dux crochets, mais pr le print '......', ca ne marche pas, apparement le résultat est binaire soit un'0' soit un '1':

    $test = `diff $test2 $test1`;
    if (!$test)
    { print "Les deux fichiers diffèrent";
    }

    J'ai fait alors ainsi, et ça a marché, donc 0 si ca diffère et un 1 si c identik..

    Tu en penses quoi!! ( ben j'ai fait ke tatonner..)
    Si $test est vide alors les fichies sont égaux.

    Donc dois écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $test = `diff $test2 $test1`;
    print "Les deux fichiers diffèrent" if $test;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Les deux fichiers sont diffèrents" if `diff $test2 $test1`;
    --
    lami20j

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 208
    Points
    208
    Par défaut
    Salut,
    Citation Envoyé par Arioch
    Et en une seule ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print `diff $test1 $test2`;
    Oui je le sais , je suis parti sur l'idée de récupération (c'est ça qu'il demande) en vue de traitement.
    --
    lami20j

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. [WD16] Récupérer la valeur d'une colonne d'une table d'une ligne précise
    Par elghers_hocine dans le forum WinDev
    Réponses: 16
    Dernier message: 06/05/2011, 18h11
  3. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  4. lancer une commande linux dans un script perl
    Par hammag dans le forum Langage
    Réponses: 1
    Dernier message: 21/11/2007, 16h18
  5. Réponses: 3
    Dernier message: 24/03/2006, 13h52

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