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 :

Perl : appel commande bash et argument


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut Perl : appel commande bash et argument
    Bonjour,

    J'utilise le module SipSak qui vient avec smokeping afin d'essayer de monitorer ma gateway SIP.

    Voici le script perl avec lequel j'ai un problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        $host = $vars->{user}.'@'.$host if $vars->{user};
        $host = $host . ':' . $vars->{port} if $vars->{port};
        my @extra_opts = ();
        @extra_opts = split /\s/, $vars->{params} if $vars->{params};
        open (my $sak,'-|',$self->{properties}{binary},'-vv','-A',$pingcount,'-s','sip:'.$host,@extra_opts)

    Après quelques tests et debug, la variable host est égale à : "nobody@hostip:5060"

    Si je compare à ce qui est lancé en bash, on obtient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/local/bin/sipsak -vv -A 20 -s sip nobody hostip 5060
    Le problème est que le @ et le : inclus dans la variable "$host" ne sont pas passés en argument, ils sont tout bonnement supprimés.

    J'ai également essayé d'utiliser les quotes inversées ` ` pour lancer le script bash, même problème..

    Je suis sous Centos 6.3 // perl5.10.1 // Bash 4.1.2

    Merci d'avance.

    Nicolas

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 256
    Points
    12 256
    Billets dans le blog
    1
    Par défaut
    Je ne connais rien aux environnements dont tu parles, mais juste une idée comme cela: essaie de mettre un backslash avant l'arobase et le double point.

    Autre truc à essayer: des guillemets autour de $host. Voire même des apostrophes avec un truc comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... 'sip:'.'.$host.',@extra_opts

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    As-tu aussi essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    my $cmd = join " ", $self->{properties}{binary},'-vv','-A',$pingcount,'-s','sip:'.$host,@extra_opts;
    print "Starting $cmd\n";
    open (my $sak,'-|',$cmd);

Discussions similaires

  1. perl & windows commande system et argument
    Par didier49122 dans le forum Programmation et administration système
    Réponses: 6
    Dernier message: 30/05/2012, 06h40
  2. [HTML & PERL] Appel d'un script shell
    Par mevardy dans le forum Web
    Réponses: 1
    Dernier message: 30/08/2006, 10h17
  3. [Perl] Appeler une fonction d'un webservice
    Par LE NEINDRE dans le forum Web
    Réponses: 2
    Dernier message: 03/05/2006, 09h36
  4. [API][Système] Executer une commande dos avec arguments
    Par oOoOuuhmAn dans le forum Général Java
    Réponses: 4
    Dernier message: 17/03/2006, 12h37
  5. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22

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