Since word splitting in vars is used not more frequently than never, protecting all vars in scripts with double quotes is quite unpleasant thing. Therefore, I want exactly this behavior always to be in my scripts:
$ IFS="" $ f() { echo $1; }; x="a b c"; f $x a b c But, IFS influences `read`, which of course benefits from word splitting. In light of that conflict, I propose two possible solutions: 1: shopt -s unsplit_vars which will turn off word splitting for var expansion. or 2: new IFS2 var that will override IFS for `read` (i.e. `read` will use IFS2 when IFS is unset).