On Dec 17, 2007 2:25 PM, Bruno Bonfils <asyd@asyd.net> wrote:
Bonjour les gens,
soit un bash sur un solaris,
grep -i pattern <fichier>
if [ ! $? ]; then echo trouvé fi
en -x :
+ '[' '!' 0 ']'
Et pourtant mon if n'est pas "exécuté", alors que [[ $? == 0 ]] fonctionne
j'aurais loupé quelque chose sur l'utilisation du ! ?!
jems@jems-laptop:~$ test 0 && echo "vrai" vrai jems@jems-laptop:~$ test 1 && echo "vrai" vrai jems@jems-laptop:~$ test -1 && echo "vrai" vrai extrait du man builtins : test expr [ expr ] Return a status of 0 or 1 depending on the evaluation of the conditional expression expr. test évalue une expression (donc pas une valeur) d'où le fait que ca fonctionne dans ton deuxième exemple. Ceci étant, je ne sais pas pourquoi dans ce cas précis tu ne testes pas directement le retour de grep ? if ! grep -i pattern <fichier>; then fi Jeremy