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 :

Récupérer le résultat d'une commande shell


Sujet :

Langage Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut Récupérer le résultat d'une commande shell
    Salut tout le monde,
    Je voudrais exécuter un script perl qui lance une commande shell, et j'aimerais récupérer le résultat.

    Je pensais à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $result = system("/opt/CSCOpx/bin/dcrcli -u admin cmd=lsids dn=$nom");
    Déjà est ce que la syntaxe est bonne ?

  2. #2
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    C'est pas faux

    Il y a déjà quelques infos dans la FAQ

    Citation Envoyé par espadon1
    Je pensais à ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $result = system("/opt/CSCOpx/bin/dcrcli -u admin cmd=lsids dn=$nom");
    J'aurai tendance à séparer commande et paramètres, au moins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $result = system("/opt/CSCOpx/bin/dcrcli", "-u admin cmd=lsids dn=$nom");

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut
    Perdu j'ai essayé ta solution, ca ne marche malheureusement pas.
    En fait je récupère bien quelque chose dans $result mais pas ce que je voudrais.

    Voila ce que la commande affiche (et que je voudrais récupérer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Total number of devices in DCR:1
    List of devices:.... 
     
    ID = 2908 (nomdelequipement)
    Je voudrais récupérer ce code (2908) mais lorsque je fais un print $result il m'affiche 65280

  4. #4
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par espadon1
    Voila ce que la commande affiche (et que je voudrais récupérer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Total number of devices in DCR:1
    List of devices:.... 
     
    ID = 2908 (nomdelequipement)
    Je voudrais récupérer ce code (2908) mais lorsque je fais un print $result il m'affiche 65280
    Je viens de relire mes docs ... system n'est pas la bonne solution car il affiche à l'écran (STDOUT) les sorties du programme appelé et retourne le code de retour.

    Une solution serait l'usage des backquotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $result=`/opt/CSCOpx/bin/dcrcli -u admin cmd=lsids dn=$nom`;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Par défaut
    Ca y est c'est bon ca marche nickel, j'avais encore une petite erreur
    C'est dans un tableau que je dois récupérer les infos.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my @result=`/opt/CSCOpx/bin/dcrcli -u admin cmd=lsids dn=$nom`;
    Merci beaucoup 2Eurocents, à mes yeux tu es le grand sage du perl

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

Discussions similaires

  1. Récupérer le résultat d'une commande scp
    Par vbcasimir dans le forum Linux
    Réponses: 19
    Dernier message: 20/05/2009, 16h14
  2. Récupérer le résultat d'une commande UNIX
    Par luxtin dans le forum Fortran
    Réponses: 2
    Dernier message: 03/10/2007, 11h36
  3. Réponses: 3
    Dernier message: 19/06/2007, 11h27
  4. Récupération du résultat d'une commande shell
    Par klu dans le forum Langage
    Réponses: 8
    Dernier message: 16/02/2006, 23h34
  5. Réponses: 2
    Dernier message: 02/01/2006, 10h39

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