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
Donc jusqu'ici ca fonctionne
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
problème dans mon script sh
sortie :
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
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 !
J'ai l'impression que l'utilisation de la varaible ${libperl} gene dans la ligne de cmd perl -e
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
qqun a une piste / idée ?
Merci
Partager