When in a non-interactive shell, IFS, when modified as the control variable in a for loop does not change splitting behavior. $ bash -c 'for IFS in .; do printf "%s\n" "$IFS" "$*"; done' bash x x . x x
$ bash -ic 'for IFS in .; do printf "%s\n" "$IFS" "$*"; done' bash x x . x.x