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 :

utilisation de la commande ls du shell dans un programme perl


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut utilisation de la commande ls du shell dans un programme perl
    Voici un programme perl qui doit m'afficher "présent" quand un fichier dont le nom est du type "backout_factures.pl.PAT91_DB.quelquechose.12345.sem" est dans le repertoire /tmp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/env perl
     
    if(`ls /tmp/backout_factures.pl.PAT91_DB* | grep 12345.sem 1>/dev/null 2>&1 `)
            {
                    print "présent";
            }
    else {
    print "absent";
    }
    Mon problème est que perl affiche un message m'indiquant que "/tmp/backout_factures.pl.PAT91_DB*" n'a pas été trouvé.

    toto@titi:/home/users/toto > script.pl
    /tmp/backout_factures.pl.PAT91_DB* not found
    absent
    Comment puis-je faire pour que ce message ne s'affiche pas (afin de ne pas effrayer les utilisateurs du script) ? J'ai essayé la redirection des erreurs en shell mais en vain, c'est ce qui m'amène à croire que c'est perl qui affiche ce message.

    Merci d'avance à tout ceux qui pourront m'apporter leur aide :-)

  2. #2
    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
    Tu ne fais pas la redirection des erreurs du shell au bon endroit : c'est "ls" qui affiche ce message, pas grep (et c'est bien du shell que vient l'erreur, pas de Perl).
    Néanmoins pour savoir si ce fichier existe, il y a bien plus simple et efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #!/usr/bin/env perl
    use List::Util qw(first);
     
    if( first { m/12345.sem/ } glob('/tmp/backout_factures.pl.PAT91_DB*') ) {
      print "présent";
    }
    else {
      print "absent";
    }
    --
    Jedaï

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci :o)

Discussions similaires

  1. récuperer la sortie d'une commande shell dans un programme C
    Par Biosox dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 21/08/2009, 12h55
  2. Invite de commande (shell) dans un programme java
    Par Fused dans le forum Général Java
    Réponses: 2
    Dernier message: 07/08/2009, 15h57
  3. utilisation des commandes shell dans un programme C
    Par rasgueados dans le forum Linux
    Réponses: 15
    Dernier message: 03/08/2006, 18h25
  4. Réponses: 6
    Dernier message: 12/04/2006, 15h53
  5. commande shell dans un programme
    Par diefo dans le forum C
    Réponses: 3
    Dernier message: 15/08/2003, 14h37

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