Comme son nom l'indique c'est le separateur de champs. Il vaut <space><tab><newline> par defaut.
Chacun de ses caractères sont considérés comme des séparateurs de champs.
On peut donc faire des choses comme :
shell> IFS=";"
shell> set -- "premier;deuxieme;troisieme;quatrieme"
shell> echo $3
troisieme
Je pourrai detaillé, si l'envie m'en prend, plus à fond les enormes possibilités que nous offre cette variable spéciale. Mais l'objet de mon post n'est pas là. En effet je suis aussi un peu un malade de la structuration de mon code et quand pour mes besoin j'avais besoin que le separateur de champs soit
shell> IFS="
"
shell> for i in $(cat foo.txt);do echo -- $i --; done
Or je detestais voir cette commande sur deux lignes, et l'utilisation de IFS="\n" ne fonctionnait pas. Alors comment faire ? Et bien jusqu'à récemment rien. Jusqu'à ce que je découvre cette nouvelle possibilité :
shell> IFS=$'\n'
shell> for i in $(cat foo.txt);do echo -- $i --; done
Notez bien l'utilisation des simples quotes !
Et me voila heu-reux ! E-R-E !!!
Aucun commentaire:
Enregistrer un commentaire