Per Greg's Wiki the IFS
variable is used:
- In the
read
command, if multiple variable-name arguments are specified,IFS
is 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,
IFS
is used to split the value of the expansion into multiple words. - When performing the
"$*"
or"${array[*]}"
expansion,the first character ofIFS
is placed between the elements in order to construct the final output string. - When doing
"${!prefix*}"
, the first character ofIFS
is placed between the variable names to make the output string. IFS
is used bycomplete -W
under 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