From: DervishD <zsh@dervishd.net>
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: Zsh Users <zsh-users@sunsite.dk>
Subject: Re: Printing arrays for use with $()
Date: Fri, 12 Aug 2005 16:32:40 +0200 [thread overview]
Message-ID: <20050812143240.GA200@DervishD> (raw)
In-Reply-To: <1050812022700.ZM12607@candle.brasslantern.com>
Hi Bart :)
* Bart Schaefer <schaefer@brasslantern.com> dixit:
> That is, have your script work the way zargs does. Or you could modify
> zargs to use ${(z)...} on its list of files, and then run
>
> qzargs -- `myscript` -- du -s
>
> But again all of this assumes you can control the caller, which means
> you could just as easily require IFS=$'\0'. There's just no way around
> this, given the semantics of $(...) and word splitting.
I've found a possible solution, quick and dirty but it works. The
only problem is that it's a bit messy, but probably you can 'clean'
it a bit O:) It implies an array assignment, but I have no problem
with that because the output is still human readable and using an
array allows me to review the list before using it:
array=(`print -- ${(j.:.)list}`)
du -s ${(s.:.)array)
The "print" part gives us a list with items separated by ':' (I
must find a char that won't be part of the filenames, anyway. ':' is
a very good candidate, but...), and when using we have to undo the
change and do the splitting. It's a bit messy, but at least it works.
There must be a much cleaner solution, but I can't think of one now
:( It's possible to do the above without having to use the split when
using the array? I know I can do this:
array=(${(s.:.):-`print -- ${(j.:.)list}`})
equivalent to, in real usage, to:
array=(${(s.:.):-`myscript args`})
But I would like to have a simpler assignment...
Thanks a lot in advance :)
Raúl Núñez de Arenas Coronado
--
Linux Registered User 88736 | http://www.dervishd.net
http://www.pleyades.net & http://www.gotesdelluna.net
It's my PC and I'll cry if I want to...
next prev parent reply other threads:[~2005-08-12 14:29 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-11 16:16 DervishD
2005-08-11 16:37 ` Bart Schaefer
2005-08-11 17:01 ` DervishD
2005-08-11 22:28 ` DervishD
2005-08-12 2:07 ` Wayne Davison
2005-08-12 7:45 ` DervishD
2005-08-12 2:27 ` Bart Schaefer
2005-08-12 8:29 ` DervishD
2005-08-12 14:37 ` Bart Schaefer
2005-08-12 14:52 ` DervishD
2005-08-12 14:32 ` DervishD [this message]
2005-08-12 14:57 ` DervishD
2005-08-13 1:34 ` Bart Schaefer
2005-08-13 8:28 ` DervishD
2005-08-13 18:54 ` Bart Schaefer
2005-08-13 21:52 ` DervishD
2005-08-11 19:40 ` Dan Nelson
2005-08-11 20:09 ` DervishD
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050812143240.GA200@DervishD \
--to=zsh@dervishd.net \
--cc=schaefer@brasslantern.com \
--cc=zsh-users@sunsite.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).