Tu as raison, mea culpa.

Dans ce cas, le plus simple est d'ajouter un caractère à la chaîne à tester et 
de juste tester si le contenu du tout n'est pas égal au caractère ajouté. Comme 
c'était proposé dans  un message précédent.

----
Pierre Malard

Le 25 mars 2013 à 11:53, "Sylvain L. Sauvage" <[email protected]> a 
écrit :

> Le lundi 25 mars 2013 à 08:35:44, Pierre Malard a écrit :
>> […]
>>> C’est un bugue ?
>> 
>> En tout cas, ça y ressemble...
> 
>  Pas vraiment.
> 
>> Si on se réfère au "man test", le "-n" devrait renvoyer VRAI
>> si la longueur de la variable n'est pas nul et le "-z" est
>> le test inverse. Or, autant le "-z" fonctionne bien, autant
>> le "-n" renvoie toujours VRAI !
> 
>  D’abord, le man test ne parle pas de longueur de _variable_ 
> mais de longueur de _chaîne_. $truc est l’expansion de la chaîne 
> contenue dans la variable truc. Si truc n’existe pas, c’est la 
> chaîne vide.
> 
>  Ensuite, l’expansion des variables est toujours effectuée 
> _avant_ d’exécuter la commande.
> 
>  Donc, quand tu écris :
>    test -n $truc
> alors que truc n’existe pas ou est une chaîne vide, c’est 
> exactement comme si tu écrivais :
>    test -n
> Ce qui est la même chose que :
>    test
> Ce qui renvoie 0 (donc vrai).
> 
>  En revanche, si tu écris :
>    test -z $truc
> alors que truc n’existe pas ou est une chaîne vide, c’est comme 
> si tu écrivais :
>    test -z
> Et, ça, c’est considéré comme faux parce que c’est le contraire 
> de
>    test -n
> 
>  Moralité, quand on veut tester une _chaîne_, on s’assure qu’il 
> y a une _chaîne_ à tester. Donc on encadre avec des "" ou on 
> précède d’une chaîne fixe (souvent 'x' ; le préfixe permet aussi 
> d’éviter un « Bobby Tables »).
>  C’est très important, surtout avec test, sinon on se prend 
> souvent des erreurs de syntaxe (essayer 'test $truc = 2' quand 
> truc n’existe pas ou est vide).
> 
> -- 
> Sylvain Sauvage
> 
> -- 
> Lisez la FAQ de la liste avant de poser une question :
> http://wiki.debian.org/fr/FrenchLists
> 
> Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
> vers [email protected]
> En cas de soucis, contactez EN ANGLAIS [email protected]
> Archive: http://lists.debian.org/[email protected]
> 

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers [email protected]
En cas de soucis, contactez EN ANGLAIS [email protected]
Archive: 
http://lists.debian.org/[email protected]

Répondre à