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