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

Linux Discussion :

[Bash] problème avec "perl -e"


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 55
    Points : 72
    Points
    72
    Par défaut [Bash] problème avec "perl -e"
    Bonjour,

    je fais un script shell qui verifie certaines choses installées une machine.
    Parmi lesquels je souhaite tester la presence de librairie perl.

    si je tape dans un shell

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [jcr@PLM01-DE ConfigInfra]$perl -e  'use XML::LibXML;'
    [jcr@PLM01-DE ConfigInfra]$echo $?
    0
    [jcr@PLM01-DE ConfigInfra]$perl -e  'use XML::LibXMLTOTO;'
    Can't locate XML/LibXMLTOTO.pm i.....
    BEGIN failed--compilation aborted at -e line 1.
    [jcr@PLM01-DE ConfigInfra]$echo $?
    2
    Donc jusqu'ici ca fonctionne

    problème dans mon script sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    liste_libperl="XML::LibXML Set::Scalar"
    for libperl in $liste_libperl
    do
            echo "perl -e  'use ${libperl};' >/dev/null 2>/dev/null"
    	perl -e  'use ${libperl};' >/dev/null 2>/dev/null
    	echo "code ret = $?"
    done
    sortie :
    perl -e 'use XML::LibXML;' >/dev/null 2>/dev/null
    code ret = 255
    perl -e 'use Set::Scalar;' >/dev/null 2>/dev/null
    code ret = 255


    Le soucis est donc que je recup pas un code = 0, mais si copie colle la ligne afficher par echo et la relance dans un terminal , $? vaut bien 0 !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [jcr@PLM01-DE ConfigInfra]$ perl -e  'use XML::LibXML;' >/dev/null 2>/dev/null
    [jcr@PLM01-DE ConfigInfra]$echo $?
    0
    J'ai l'impression que l'utilisation de la varaible ${libperl} gene dans la ligne de cmd perl -e

    qqun a une piste / idée ?

    Merci

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 587
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 587
    Points : 19 467
    Points
    19 467
    Par défaut
    perl ne sait pas de quoi tu lui parle.
    la variable doit être interprétée par bash, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -e  'use '"${libperl}"';' >/dev/null 2>&1

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 55
    Points : 72
    Points
    72
    Par défaut
    Merci !

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

Discussions similaires

  1. [Bash] Problème avec paramètres dans variables
    Par bisol dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 09/03/2013, 17h39
  2. [Bash] Problème avec locate dans un script
    Par kopros2 dans le forum Administration système
    Réponses: 2
    Dernier message: 07/12/2011, 07h06
  3. Petit problème avec prog perl
    Par lavm01 dans le forum Langage
    Réponses: 1
    Dernier message: 30/07/2007, 22h56
  4. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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