I'm getting confused about the role word splitting plays in
zsh. I have not been exposed to this concept when programming in C, Python or MATLAB, and this has triggered my interest of why word splitting seems to be something specific to shell programming.
I have read about word splitting on this and other sites before, but haven't found a clear explanation of the concept. Wikipedia has a definition of word splitting but does not seem to have references on how it applies to Unix shells.
Here's an example of my confusion in
In the Z Shell FAQ, I read the following:
3.1: Why does
var="foo bar"not do what I expect?
In most Bourne-shell derivatives, multiple-word variables such as
var="foo bar"are split into words when passed to a command or used in a
for foo in $varloop. By default, zsh does not have that behaviour: the variable remains intact. (This is not a bug! See below.) The option
SH_WORD_SPLITexists to provide compatibility.
However, in the Z Shell Manual, I read the following:
SH_WORD_SPLIT (-y) <K> <S>
Causes field splitting to be performed on unquoted parameter expansions. Note that this option has nothing to do with word splitting. (See Parameter Expansion.)
Why does it say that
SH_WORD_SPLIT has nothing to do with word splitting? Isn't word splitting precisely what this is all about?