suis-je devenu fou ?

Vincent Lefevre vincent at vinc17.org
Mon Dec 17 14:40:00 CET 2007


On 2007-12-17 14:25:57 +0100, Bruno Bonfils wrote:
> if [ ! $? ]; then
> 	echo trouvé
> fi
> 
> en -x :
> 
> + '[' '!' 0 ']'
> 
> Et pourtant mon if n'est pas "exécuté", alors que [[ $? == 0 ]]
> fonctionne

Le '!' ne fonctionne pas comme cela. Il inverse le résultat du test.
Comme "test 0" est vrai (car '0' n'est pas la chaîne vide), ça donne
faux.

Il faut utiliser [ $? -eq 0 ] ou [ $? -ne 0 ] suivant les cas.

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


More information about the Shell mailing list