I am translating man 1 bash in my native languge. There is a somewhat confu-
sing explanation (at leas for me) of IFS varible in EXPANSION section, Word
Splitting subsection. I'll quote it here:
> Word Splitting
> The shell scans the results of parameter expansion, command
> tion, and arithmetic expansion that did not occur within
> quotes for word splitting."
var="a b c"
> The shell treats each character of IFS as a delimiter, and
> results of the other expansions into words on these
> IFS is unset, or its value is exactly <space><tab><newline>,
> default, then any sequence of IFS characters serves to delimit
this is clear.
> If IFS has a value other than the default, then sequences of
> whitespace characters space and tab are ignored at the
> end of the word, as long as the whitespace character is in the
> of IFS (an IFS whitespace character).
that means, *unless the witespace character is back in the value of IFS*
> Any character in IFS
> not IFS whitespace, along with any adjacent IFS whitespace
> ters, delimits a field.
I think, I got it:
echo $var # a b c
Now the part that I can barely understand:
> A sequence of IFS whitespace characters is
> also treated as a delimiter. If the value of IFS is null, no
> splitting occurs.
> Explicit null arguments ("" or '') are retained. Unquoted
> null arguments, resulting from the expansion of parameters that
> no values, are removed. If a parameter with no value is
> within double quotes, a null argument results and is retained.
> Note that if no expansion occurs, no splitting is performed.
Could someone, please, expand this last part, add a few examples.
Thank you. Vitaliy.