From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25416 invoked from network); 12 Aug 2005 14:29:37 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 12 Aug 2005 14:29:37 -0000 Received: (qmail 96024 invoked from network); 12 Aug 2005 14:29:29 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 12 Aug 2005 14:29:29 -0000 Received: (qmail 27586 invoked by alias); 12 Aug 2005 14:29:21 -0000 Mailing-List: contact zsh-users-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9304 Received: (qmail 27576 invoked from network); 12 Aug 2005 14:29:20 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 12 Aug 2005 14:29:20 -0000 Received: (qmail 94918 invoked from network); 12 Aug 2005 14:29:20 -0000 Received: from ns9.hostinglmi.net (213.194.149.146) by a.mx.sunsite.dk with SMTP; 12 Aug 2005 14:29:14 -0000 Received: from 212.red-80-35-44.pooles.rima-tde.net ([80.35.44.212] helo=localhost) by ns9.hostinglmi.net with esmtpa (Exim 4.51) id 1E3aX6-0001s5-3O; Fri, 12 Aug 2005 16:29:16 +0200 Date: Fri, 12 Aug 2005 16:32:40 +0200 From: DervishD To: Bart Schaefer Cc: Zsh Users Subject: Re: Printing arrays for use with $() Message-ID: <20050812143240.GA200@DervishD> Mail-Followup-To: Bart Schaefer , Zsh Users References: <20050811161654.GA8200@DervishD> <1050811163714.ZM2498@candle.brasslantern.com> <20050811170124.GA8279@DervishD> <20050811222847.GA341@DervishD> <1050812022700.ZM12607@candle.brasslantern.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1050812022700.ZM12607@candle.brasslantern.com> User-Agent: Mutt/1.4.2.1i Organization: DervishD X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - ns9.hostinglmi.net X-AntiAbuse: Original Domain - sunsite.dk X-AntiAbuse: Originator/Caller UID/GID - [0 0] / [47 12] X-AntiAbuse: Sender Address Domain - dervishd.net X-Source: X-Source-Args: X-Source-Dir: X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.0.4 Hi Bart :) * Bart Schaefer 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...