Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Order of field splitting in zsh



POSIX.2 defines the following order of expansions in sh:

1. tilde expansion, parameter expansion, command substitution, arithmetic
expansion
2. field splitting (_after_ the above)
3. pathname expansion (globbing)
4. qoute removal.

It seems, that zsh (even if invoked as sh) does field splitting on result
of command substitution  _immidiately_ after getting the value. The
example is:

% sh #where sh is linked to zsh
% args a$(echo a b)b${IFS::=:}
3
aa
bb
%

(the third being null string). If I understand POSIX specs right, it
should give _two_ arguments ('aa bb' and empty).

This example is obviously artificial; I fail currently to state if it can
be a problem in real life or not. (Note, that ${var::=val} is illegal in
POSIX; I use it to just demonstrate order of substitutions).

greetings

-------------------------------------------------------------------------
Andrej Borsenkow 		Fax:   +7 (095) 252 01 05
SNI ITS Moscow			Tel:   +7 (095) 252 13 88

NERV:  borsenkow.msk		E-Mail: borsenkow.msk@xxxxxx
-------------------------------------------------------------------------




Messages sorted by: Reverse Date, Date, Thread, Author