Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/10/2008, à 14:28

®om

Tests en shell : pourquoi ça?

Salut,

On trouve dans certains scripts (par exemple dans /usr/bin/compiz) ce type de comparaison :

[ "x$CM_DRY" = "xyes" ]

Quel est l'intérêt du x? Pourquoi pas :

[ "$CM_DRY" = "yes" ]

Car même quand $CM_DRY est vide, le test fonctionne :

[ "$CM_DRY" = "yes" ] || echo "n'existe pas"

Le test fonctionne... que ça soit avec bash ou en sh (dash).

D'où vient cette pratique?

Hors ligne

#2 Le 22/10/2008, à 15:15

geenux

Re : Tests en shell : pourquoi ça?

Bonne question, je ne vois pas l'intérêt d'ajouter x des deux côtés !

Hors ligne

#3 Le 22/10/2008, à 16:28

HP

Re : Tests en shell : pourquoi ça?

surtout que la syntaxe est dépréciée… avec x ou pas…

Dernière modification par HP (Le 22/10/2008, à 16:28)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#4 Le 22/10/2008, à 16:35

®om

Re : Tests en shell : pourquoi ça?

HP a écrit :

surtout que la syntaxe est dépréciée… avec x ou pas…

Quelle est la nouvelle syntaxe alors?

Hors ligne

#5 Le 22/10/2008, à 16:37

n3o51

Re : Tests en shell : pourquoi ça?

C'est une ancienne convention au cas ou la variable est vide.J'arrive plus a retrouver la doc qui en parler

Dernière modification par n3o51 (Le 22/10/2008, à 16:44)


Welcome to the real world
________________________________

Hors ligne

#6 Le 22/10/2008, à 19:39

Link31

Re : Tests en shell : pourquoi ça?

Autant que je me souvienne, c'est tout simplement parce que d'anciennes versions de "test" ne supportaient pas d'avoir un argument vide : "".

Hors ligne

#7 Le 22/10/2008, à 19:59

Alain.g

Re : Tests en shell : pourquoi ça?

Trouvé ici : http://www.nabble.com/Manual-Example-td4573283.html

The x before the variable ensures that the first argument to `test' does not start with a `-'.  The problem here is that it confuses some older implementations of `test' (or the shell that possibly implements it as a builtin command), when $debug happens to be `-z', for example.

Dernière modification par Alain.g (Le 22/10/2008, à 20:00)


Xubuntu Karmic !

Hors ligne