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

Re: Odd expansion behavior



On Thu, 03 Jul 2014 10:12:01 +0100
Peter Stephenson <p.stephenson@xxxxxxxxxxx> wrote:
> That's the difference between a scalar and an array assignment.

The doc is somewhat scattered.  This might help a bit.

diff --git a/Doc/Zsh/grammar.yo b/Doc/Zsh/grammar.yo
index 719f06a..77f0098 100644
--- a/Doc/Zsh/grammar.yo
+++ b/Doc/Zsh/grammar.yo
@@ -19,7 +19,11 @@ cindex(simple commands)
 cindex(commands, simple)
 A em(simple command) is a sequence of optional parameter
 assignments followed by blank-separated words,
-with optional redirections interspersed.
+with optional redirections interspersed.  For a description
+of assignment, see the beginning of
+ifnzman(noderef(Parameters))\
+ifzman(zmanref(zshparam)).
+
 The first word is the command to be executed, and the remaining
 words, if any, are arguments to the command.
 If a command name is given, the parameter assignments modify
diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo
index 5bccdc2..dbac511 100644
--- a/Doc/Zsh/params.yo
+++ b/Doc/Zsh/params.yo
@@ -21,14 +21,20 @@ indent(var(name)tt(=)var(value))
 
 If the integer attribute, tt(-i), is set for var(name), the var(value)
 is subject to arithmetic evaluation.  Furthermore, by replacing `tt(=)'
-with `tt(+=)', a parameter can be added or appended to.  See
+with `tt(+=)', a parameter can be added or appended to.
+
+In scalar assignment, var(value) is expanded as a single string, in
+which the elements of arrays are joined together; filename expansion is
+not performed unless the option tt(GLOB_ASSIGN) is set.  See
 noderef(Array Parameters) for additional forms of assignment.
 
 To refer to the value of a parameter, write `tt($)var(name)' or
 `tt(${)var(name)tt(})'.  See
 ifzman(em(Parameter Expansion) in zmanref(zshexpn))\
 ifnzman(noderef(Parameter Expansion))
-for complete details.
+for complete details.  This section also explains the effect
+of the difference between scalar and array assignment on parameter
+expansion.
 
 In the parameter lists that follow, the mark `<S>' indicates that the
 parameter is special.

pws



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