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

nesting issue



Getting more comfortable with nesting things:

#1:
local in=($1,*(N))
#2:
local sorted=$(print -l "${(n)in[@]}")
#3:
sorted=( "${(f)sorted}" )

    ... works fine, now I do an  exact verbatim nesting of line two into line three:

local sorted=( "${(f)$(print -l "${(n)in[@]}") }" )

    "bad substitution".  Ok, that could be because we can't nest quotes so:

local sorted=( "${(f)$(print -l "${(n)in[@]}") }" )
local sorted=( "${(f)$(print -l \"${(n)in[@]}\") }" )
local sorted=( "${(f)$(print -l ${(n)in[@]}) }" )
local sorted=( ${(f)$(print -l ${(n)in[@]}) } )

    .... none of those work.  Is this something were a literal substitution of one block of characters can't work?  It hardly matters in practice, I prefer the three steps above, it's easier to digest, but purely as a theoretical question, can I nest line two and three, or even all three lines?  I'd like to understand why the parser doesn't like my efforts.  I can see that the 'no nested quotes' rule could make some literal substitutions logically impossible. But maybe there is a way.  If so, seeing how will be instructive.





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