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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    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 : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    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");
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    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 : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    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`;
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    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