[gull] truc et astuce: Utiliser des array de 1 element pour encadrer les boucles
Daniel Cordey
dc at mjt.ch
Tue Mar 2 10:01:02 CET 2004
On Monday 01 March 2004 18.42, Félix Hauri wrote:
Petit complement.
> En effet la commande
> $ echo $UneVariableNonDefinie
> ne répondra rien, de plus le code de retour sera 0 (Ok).
Je ne saurais recommander l'usage des {} de maniere systematique. Ceci evite
bien des ambiguites. Par exemple :
$ myvariable=file
$ echo $myvariable23
$ echo ${myvariable}23
file23
En effet, dan sle premier echo, le shell considere 'myvariable23' comme un
symbole.
> En effet, le shell s'accomode très bien de l'inexistance d'une variable, à
> tel point que le test ``[ $i -gt 0 ]'' générera une erreure si $i n'est
> pas défini.
Oui, c'est bien le comportement par defaut, en l'absence de l'option -u qui
elle engendre une erreur pour tout usage de variable indefinie.
$ set -u
On peut aussi eviter ce genre d'erreur dans les tests (assez enervant !) en
ecrivant :
[ "${i}" -gt 0 ]
La, ce ne sont pas les accolades qui evitent le probleme, mais l'usage des
guillemets ("). Ainsi, si 'i' ne contient rien, nous aurons quand meme une
valuer 'vide' existante qui poura etre comparee.
More information about the gull
mailing list