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]

