Per Greg's Wiki the IFS variable is used:
- In the
readcommand, if multiple variable-name arguments are specified,IFSis used to split the line of input so that each variable gets a single field of the input. - When performing WordSplitting on an unquoted expansion,
IFSis used to split the value of the expansion into multiple words. - When performing the
"$*"or"${array[*]}"expansion,the first character ofIFSis placed between the elements in order to construct the final output string. - When doing
"${!prefix*}", the first character ofIFSis placed between the variable names to make the output string. IFSis used bycomplete -Wunder programmable completion
So my question is, why should IFS have to come into play in variable assignment? Per the below, bash is applying word-splitting on the string on the right(a:b:c:d).
$ IFS=: s=a:b:c:d
$ echo $s
a b c d