The shell scans the results of parameter expansion, command substitution, and arithmetic expansion that did not occur within double quotes for word splitting. Words that were not expanded are not split.
The shell treats each character of $IFS as a delimiter,
and splits the results of the other expansions into fields
using these characters as field terminators.
An IFS whitespace character is whitespace as defined above
(see Definitions) that appears in the value of IFS.
Space, tab, and newline are always considered IFS whitespace, even
if they don’t appear in the locale’s space category.
If IFS is unset, word splitting behaves as if its value were
<space><tab><newline>,
and treats these characters as IFS whitespace.
If the value of IFS is null, no word splitting occurs,
but implicit null arguments (see below) are still removed.
Word splitting begins by removing sequences of IFS whitespace characters from the beginning and end of the results of the previous expansions, then splits the remaining words.
If the value of IFS consists solely of IFS whitespace,
any sequence of IFS whitespace characters delimits a field,
so a field consists of characters that are not unquoted IFS
whitespace, and null fields result only from quoting.
If IFS contains a non-whitespace character, then any
character in the value of IFS that is not IFS whitespace,
along with any adjacent IFS whitespace characters, delimits a field.
This means that adjacent non-IFS-whitespace delimiters produce a
null field.
A sequence of IFS whitespace characters also delimits a field.
Explicit null arguments ("" or '') are retained
and passed to commands as empty strings.
Unquoted implicit null arguments, resulting from the expansion of
parameters that have no values, are removed.
Expanding a parameter with no value within double quotes
produces a null field,
which is retained and passed to a command as an empty string.
When a quoted null argument appears as part of a word whose expansion
is non-null, word splitting removes the null argument portion,
leaving the non-null expansion.
That is, the word
-d'' becomes -d after word splitting and
null argument removal.