[gull] bash>for>word

Daniel Cordey dc at mjt.ch
Thu Sep 30 15:43:02 CEST 2004


On Thursday 30 September 2004 15:25, Sebastien Cevey wrote:

> Ta solution avec le pipe->while permet de contourner le problème de la
> séparation par newline vs. espaces, tandis qu'un simple for va séparer
> les champs par des espaces.  On peut modifier IFS, mais je cherchais
> une astuce similiaire au while qui permet de ne pas toucher IFS...

Ca-y-est... ca me revient... j'avais un peu oublie le probleme. En effet, si 
j'ai utiliser un 'while' au lieu d'une boucle 'for' ce n'est pas un 
hasard :-) 

Jouer avec le IFS peutr s'averer enquiquinant suivant ce que tu veux faire 
dans la boucle. J'utilise systematiquement le 'while' lorsque j'ai une chance 
d'avoir N (N>1) arguments par ligne. De plus, le while me permet d'assigner 
chaque argument a un symbole pour chaque ligne et d'avoir, par exemple, toute 
la fin de la ligne dans le dernier symbole. Par exemple :

echo 'toto titi tata
a b c d' |\
while read x y z
do
    echo "[${x}] [${y}] [${z}]"
done

Donne :

[toto] [titi] [tata]
[a] [b] [c d]

dc



More information about the gull mailing list