Le Sun, 15 Dec 2002 17:18:14 -0400, jipe a écrit :

> voilà pourquoi je disais de quoter. il faut entourer les noms de variables, le $
> y compris avec "" pour préserver les espaces dans les noms de fichiers ou
> de répertoires.

Ça, j'avais fait !

> mais c'est insuffisant pour la variable tableau qui va
> traiter chaque espace comme un séparateur de champ. l'astuce consiste à

Ben ouaip !

> définir $IFS avec \n (nouvelle ligne) comme séparateur de champ, et dans
> ce cas précis, d'utiliser l'option -1 de ls qui présente chaque résultat sur
> une ligne.

Et allez, encore une astuce à la Jipe :-)


> $ OIFS=$IFS; IFS=$'\t'
> $ RANG=($(ls -t1 {"$orig","$CIBLE"}))
[...]
> $ IFS=$OIFS
[...]

C'est tout bon !

Mais maintenant, je me ballade dans le script avec une multitude de
redéfinition et de restauration de IFS :-))

> un petit truc:
> lorsqu'une variable contient plusieurs espaces à la suite, il suffit de la 
>double-quoter pour préserver les espaces.
> $ a="abc def   ghi"
> $ echo $a
> abc def ghi
> $ echo "$a"
> abc def   ghi

ça oui, je savais.

> supprimer l'espace de $IFS permet de se passer de double-quotes avec
> echo. je trouve que c'est même plus confortable dans un script. en tout
> cas  moins de prise de tête lorsqu'il faut débuguer. 
> $ IFS=$'\n'
> $ echo $a
> abc def   ghi

Ah ouaip !
Mais moi j'ai encore du mal avec tes 
IFS=$'\n\r\t'
IFS=" "
IFS=$'\n'
un peu partout :-)
Mais ça viendra.
En tout cas, maintenant, mon (notre)  script, il est au top !


> arf !!! non :)
> j'avais commencé une ligne par "si seulement". j'ai du l'effacer
> incomplètement puis y revenir en oubliant le petit bout non effacé qui
> est resté, si seul, à la fin du message. 
> avec 4 enfants de 10 à 18 ans, c'est difficile d'être seul ... ;)

Comme je te comprends.

> (des fois j'aimerais bien ...)

Comme je te comprends. (bis)
:-))

>         <- j'ai fait attention qu'il ne reste plus rien là !

Si si, moi ! ;-) 

-- 
Christophe PEREZ

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Reply via email to