[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