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 :

une commande dans un backquote


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 124
    Points : 52
    Points
    52
    Par défaut une commande dans un backquote
    Hello !


    j'ai le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    print "Fichier en cours :";
    foreach (@ARGV) {
    print $_;
    }
    print "\n";
     
     
    ##################################################################
    # ETUDE ARGUMENTS
     
    $SORTIE_SPAMC=`spamc -R < $_`;

    En fait j'aimerais avoir dans la variable sortie_spamc ce que la commande spamc donne avec comme argument un fichier.

    le pb, c'est que je ne sais pas pkoi, le $_ n'est pas pris en compte..
    une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh: line 1: sh: Aucun fichier ou répertoire de ce type


    de plus, si je mets \$1, j'obitiens :


    thx

  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 Re: une commande dans un backquote
    Bonjour,

    Citation Envoyé par Krispy
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    print "Fichier en cours :";
    foreach (@ARGV) {
    print $_;
    }
    print "\n";
     
    ##################################################################
    # ETUDE ARGUMENTS
     
    $SORTIE_SPAMC=`spamc -R < $_`;
    ...

    le pb, c'est que je ne sais pas pkoi, le $_ n'est pas pris en compte..
    une idée ?
    $_ n'a certainement pas la valeur que tu attends lorsqu'il est pris hors de la boucle foreach

    Tente en le remettant dans la boucle (si cela a un sens pour ce que tu souhaites faire !) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    print "Fichier en cours :";
    foreach (@ARGV) {
        print $_ . "\n" . "-"x60 . "\n";
     
        ##################################################################
        # ETUDE ARGUMENTS
        $SORTIE_SPAMC=`spamc -R < $_`;
        print $SORTIE_SPAMC."\n"
    }
    print "\n";

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 124
    Points : 52
    Points
    52
    Par défaut
    En fait, c'est pas exactment ça

    Je veux juste lancer ./scriptperl ARGUMENT1


    et qu'à l'interieur, on lance la commance ./shellscript ARGUMENT1, et que je récupere la sortie.

    C'est faisable ?

  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 Krispy
    C'est faisable ?
    Oui, c'est faisable.

    Ce script, nommé script.pl, fonctionne parfaitement chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
    use strict;
     
    foreach (@ARGV) {
      my $sortie=`ls -al $_`;
     
      print $sortie."\n";
    }
    Et si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./script /var/log /home /tmp
    il fait un ls -al sur chacun des répertoires passés en paramètre.

    C'est quand même assez similaire à ce que tu veux faire, non ?

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 124
    Points : 52
    Points
    52
    Par défaut
    yes, c'est bien ce que je cherchais, merci !
    J'ai une autre question, mais ce sera pour un autre sujet

    encore meci

Discussions similaires

  1. Trouver une commande dans un package ?
    Par byloute dans le forum Debian
    Réponses: 4
    Dernier message: 13/04/2009, 22h54
  2. Exécution d'une commande dans un Trigger
    Par Perr1 dans le forum Oracle
    Réponses: 6
    Dernier message: 08/04/2006, 00h14
  3. Ajouter une commande dans le menu contextuel
    Par Tenguryu dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/04/2006, 12h43
  4. Réponses: 7
    Dernier message: 05/10/2005, 18h06
  5. Ecrire le résultat d'une commande dans un fichier de l' OS
    Par Labienus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/02/2004, 11h04

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