asignación de variables e IFS

Según la Wiki de Greg se usa la variable IFS :

  • En el command de read , si se especifican varios arguments de nombre de variable, IFS se usa para dividir la línea de input de modo que cada variable obtenga un solo campo de la input.
  • Al realizar WordSplitting en una expansión sin cita, IFS se usa para dividir el valor de la expansión en varias palabras.
  • Al realizar la expansión "$*" o "${array[*]}" , el primer carácter de IFS se coloca entre los elementos para build la cadena de salida final.
  • Al hacer "${!prefix*}" , el primer carácter de IFS se coloca entre los nombres de las variables para formar la cadena de salida.
  • IFS se utiliza por complete -W bajo finalización progtwigble

Entonces mi pregunta es, ¿por qué debería IFS entrar en juego en la asignación variable? Por debajo, bash está aplicando split de palabras en la cadena de la derecha ( a:b:c:d ).

 $ IFS=: s=a:b:c:d $ echo $s abcd 

No es así Debe citar correctamente . La split de palabras se aplica a las expansiones sin cita de acuerdo con el valor de IFS. El problema es tu command echo , no la asignación.

  $ ( IFS=: s=a:b:c:d typeset -ps ) declare -- s="a:b:c:d"