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 :

[langage] script perl cmd system


Sujet :

Langage Perl

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut [langage] script perl cmd system
    Salut

    je voudrai faire un script perl qui execute des commande suivant le parametre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/perl -w
     
    use strict;
     
    $cmdstart="/home/kacedda/local/bin/prog -d /home/kacedda/local/etc/prog.cfg";
    $cmdstop="killall prog";
     
    if($ARGV[0] eq "start")
    {
            system $cmdstart ;
            print "Prog Started\n";
    }
    if($ARGV[0] eq "stop")
    {
            system($cmdstop);
            print "Prog Stopped\n";
    }
    if($ARGV[0] eq "restart")
    {
            system($cmdstop);
            system($cmdstart);
            print "Prog Restarted\n";
    }
    Ce qui dedvrait se passer:
    Suivant le parametre passer le prog deevrait se lancer,sarreter ou redemmarer

    Ce qui se passe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Global symbol "$cmdstart" requires explicit package name at ./pl_nagios line 5.
    Et une ligne pour chaque cmd comme ca.

    PS:Si jexecute le prog direct en ligne de cmd pas dee probleme ca marche:
    # /home/kacedda/local/bin/prog -d /home/kacedda/local/etc/prog.cfg

    Si kkun a un idee...

  2. #2
    Membre expérimenté
    Avatar de nyal
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    622
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 622
    Points : 1 428
    Points
    1 428
    Par défaut Re: script perl cmd system
    Citation Envoyé par kacedda
    Salut

    je voudrai faire un script perl qui execute des commande suivant le parametre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #!/usr/bin/perl -w
     
    use strict;
     
    $cmdstart="/home/kacedda/local/bin/prog -d /home/kacedda/local/etc/prog.cfg";
    $cmdstop="killall prog";
    if($ARGV[0] eq "start")
    {
            system $cmdstart ;
            print "Prog Started\n";
    }
    if($ARGV[0] eq "stop")
    {
            system($cmdstop);
            print "Prog Stopped\n";
    }
    if($ARGV[0] eq "restart")
    {
            system($cmdstop);
            system($cmdstart);
            print "Prog Restarted\n";
    }
    Ce qui dedvrait se passer:
    Suivant le parametre passer le prog deevrait se lancer,sarreter ou redemmarer

    Ce qui se passe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Global symbol "$cmdstart" requires explicit package name at ./pl_nagios line 5.
    Et une ligne pour chaque cmd comme ca.

    PS:Si jexecute le prog direct en ligne de cmd pas dee probleme ca marche:
    # /home/kacedda/local/bin/prog -d /home/kacedda/local/etc/prog.cfg

    Si kkun a un idee...
    Tu utilises 'use strict;' mais je vois que tu ne sais pas a quoi cela sert .
    Avec use strict (et surtout avec -w), il faut expliciter la portee de la variable.

    Essaye cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/usr/bin/perl -w
     
    use strict;
     
    my $cmdstart="/home/kacedda/local/bin/prog -d /home/kacedda/local/etc/prog.cfg";
    my $cmdstop="killall prog";
    Ca fonctionnera mieux.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    use strict;
    t'oblige a faire du code "propre", il t'oblige a declarer tes variables (ce qui est une bonne habitude sur de gros programme)
    les fautes d'orthographe de ce texte sont sous license GPL. Merci d'informer le proprietaire de la faute en cas de modification.

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Oui effectivement, et son principal avantage, c'est qu'il détecte les fautes de frappe : si tu as écris :
    my $variable = 56;
    print $varable + 3;

    et que tu n'as pas utilisé use strict, ça va t'afficher "3" et tu ne sauras pas d'où le problème vient (enfin dans des cas plus compliqué disons ), mais si tu utilise use strict, il t'affichera une erreur à la compilation et te pointeras la faute, beaucoup plus facile pour corriger

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Salut

    Merci pour votre aide les gars

    Mais en fait chuis trop bidon car Aurioch me laV dit dans un de mes precedent post.
    Et g trouve la soluce le soir ou G poster le message mais jaV plus le net donc G pas pu me repondre

    G vraiment gaffer sur ce coup ya en a qui ont du rigoler


    Et encore Merci bcp pour vos explication et votre aide

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

Discussions similaires

  1. [langage] Probleme avec caractère '$' dans script Perl
    Par zouetchou dans le forum Langage
    Réponses: 11
    Dernier message: 24/07/2004, 16h35
  2. [langage] Script Perl Aide
    Par julfra dans le forum Langage
    Réponses: 7
    Dernier message: 17/05/2004, 10h55
  3. [langage] Script en Perl - besoin d'aide
    Par julfra dans le forum Langage
    Réponses: 8
    Dernier message: 13/05/2004, 15h47
  4. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 19h26
  5. Réponses: 2
    Dernier message: 11/07/2002, 09h31

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