bash: Word Splitting

 
 3.5.7 Word Splitting
 --------------------
 
 The shell scans the results of parameter expansion, command
 substitution, and arithmetic expansion that did not occur within double
 quotes for word splitting.
 
    The shell treats each character of '$IFS' as a delimiter, and splits
 the results of the other expansions into words using these characters as
 field terminators.  If 'IFS' is unset, or its value is exactly
 '<space><tab><newline>', the default, then sequences of ' <space>',
 '<tab>', and '<newline>' at the beginning and end of the results of the
 previous expansions are ignored, and any sequence of 'IFS' characters
 not at the beginning or end serves to delimit words.  If 'IFS' has a
 value other than the default, then sequences of the whitespace
 characters 'space', 'tab', and 'newline' are ignored at the beginning
 and end of the word, as long as the whitespace character is in the value
 of 'IFS' (an 'IFS' whitespace character).  Any character in 'IFS' that
 is not 'IFS' whitespace, along with any adjacent 'IFS' whitespace
 characters, delimits a field.  A sequence of 'IFS' whitespace characters
 is also treated as a delimiter.  If the value of 'IFS' is null, no word
 splitting occurs.
 
    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.  If a
 parameter with no value is expanded within double quotes, a null
 argument results and 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, the null argument is removed.  That is, the word
 '-d''' becomes '-d' after word splitting and null argument removal.
 
    Note that if no expansion occurs, no splitting is performed.