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

Re: joining array elements



Wataru Kagawa wrote:
> Hi Peter,
> 
> Thank you for the tip.  I would like to place the expansion into a  
> variable, however, I am having a trouble.
> 
> % usernames=( Bob Sara Tim )
> % print -R ${(j:[return]:)~~usernames}
> Bob[return]Sara[return]Tim
> 
> However,
> 
> % foo=$( printf '%s\n' David Matt ${(j:[return]:)~~usernames} )
> % echo $foo

What effect are you trying to achieve?  The command you show does
exactly what I expect it to.  Do you mean you want David and Matt added
in the same way and the result put in foo?

usernames2=(David Matt $usernames)
foo=${(j:[return]:)~~usernames2}

Or do you mean you want the same effect as you get when outputting David
and Matt using printf, but with all the names, so that foo ends up being
joined with newlines?

foo=${(F)usernames2}

-- 
Peter Stephenson <pws@xxxxxxx>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


Your mail client is unable to display the latest news from CSR. To access our news copy this link into a web browser:  http://www.csr.com/email_sig.html



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