[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cowsay et xcowsay



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" <Sylvain.L.Sauvage@free.fr> 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 debian-user-french-REQUEST@lists.debian.org
> En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
> Archive: [🔎] 201303251153.11645.Sylvain.L.Sauvage@free.fr">http://lists.debian.org/[🔎] 201303251153.11645.Sylvain.L.Sauvage@free.fr
> 


Reply to: