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

Re: Export problem



> What do you mean "more or less"? Was 14716 unclear? "Variable assignment" is

What I meant was that my paraphrasing of the spec could perhaps imply more
or less than would a verbatim quote.

> strictly defined grammar construct. No more and no less. In
> 
> foo=bar bla bla bar=baz
> 
> foo=bar is variable assignment and bar=baz is command argument.

I don't dispute that.

> - in ${x:=word} word is *never* splitted irrespectively of where it appears
> and if it is quoted

Where is that stated?

> - x=word is not splitted (should I add "never"?)

Where is that stated?
Your quote of SUS (which is lifted from POSIX) said
that each variable assignment undergoes expansion
in step 4, including parameter expansion and command
substitution.  In addition, the bit about Field Splitting
says that "the shell shall scan the results of expansions
and substitutions that did not occur in double-quotes
for field splitting and multiple fields can result."
It then goes on to talk about IFS and how splitting
is to occur.  I also don't see any exceptions or
proscriptions against splitting when variable assignment
is involved.

> - in export x=word the whole `x=word' is field splitted unless quoted.

That seems fairly straight-forward, but I don't understand the
intended effect.  The output of field splitting is "fields."
The input is whatever results from the expansion or substitution
of "words."  Does POSIX define these things?

If `date +%z%f` expanded to "-0400; rm -rf .", what should

export THIS=`date +%z%f` do?

a) export THIS with the value "-0400; rm -rf ."
b) export THIS with the value "-0400; rm -rf ." as an array of 4 words?
   POSIX doesn't seem to acknowledge the concept of arrays in the Shell
   Command Language.
c) export THIS with the value "-0400;" and try to export parameters
   named "rm", "-rf", and "."?
d) retokenize the line and treat it as a sequential list of two commands?



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