[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:
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:
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:
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