J'ai lu ici une grande question intitulée Comprendre IFS . J'ai été surpris parce que les réponses et les commentaires citent POSIX qui déclare que IFS = n'est pas la même chose que désarmer IFS. Si vous désactivez IFS, la valeur par défaut est apparemment utilisée. Si vous désactivez IFS à la place, il n'y a pas de séparateur. Je savais que j'avais vu un point de vue différent à ce sujet, et je l'ai trouvé dans mes signets:
$ IFS
La toute première instruction de votre script doit être
IFS =
qui réinitialise le séparateur de champ de saisie à sa valeur par défaut. Sinon, vous héritez de $ IFS de l'utilisateur, qui peut l'avoir défini sur une valeur bizarre afin de rendre les chaînes d'analyse sh différemment de ce que vous attendez, et induire un comportement étrange.
Etait-ce vrai il y a quelque temps ou est-ce que l'auteur a tout simplement tort?
unset IFS
ne réinitialise pas IFS à sa valeur par défaut dans bash bien qu'il réinitialise le fractionnement de champ.