From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10264 invoked from network); 12 Feb 1999 20:15:42 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 12 Feb 1999 20:15:42 -0000 Received: (qmail 29574 invoked by alias); 12 Feb 1999 20:14:39 -0000 Mailing-List: contact zsh-users-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 2136 Received: (qmail 29567 invoked from network); 12 Feb 1999 20:14:33 -0000 From: "Bart Schaefer" Message-Id: <990212121357.ZM11167@candle.brasslantern.com> Date: Fri, 12 Feb 1999 12:13:57 -0800 In-Reply-To: <19990212143425.A23452@astaroth.nit.gwu.edu> Comments: In reply to Sweth Chandramouli "Re: setopt and alias questions" (Feb 12, 2:34pm) References: <19990207193735.A2060@astaroth.nit.gwu.edu> <990207175931.ZM8940@candle.brasslantern.com> <19990207235214.A2653@astaroth.nit.gwu.edu> <990207233343.ZM10079@candle.brasslantern.com> <19990208103038.A3447@astaroth.nit.gwu.edu> <990208104550.ZM14297@candle.brasslantern.com> <19990208141534.A4151@astaroth.nit.gwu.edu> <990208114403.ZM14493@candle.brasslantern.com> <19990208145928.C4151@astaroth.nit.gwu.edu> <990208125500.ZM14738@candle.brasslantern.com> <19990212143425.A23452@astaroth.nit.gwu.edu> X-Mailer: Z-Mail Lite (5.0.0 30July97) To: Sweth Chandramouli , zsh-users@sunsite.auc.dk Subject: Re: setopt and alias questions MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Feb 12, 2:34pm, Sweth Chandramouli wrote: > Subject: Re: setopt and alias questions > On Mon, Feb 08, 1999 at 12:55:00PM -0800, Bart Schaefer wrote: > > That won't work either (and my remark about "unless there happens to be a > > file in the current directory" is wrong as well). Filename generation is > > not applied to the strings inside the [[ ... ]]. > > are you sure about this? the above (with -n instead of -x) works > fine for me--or at least, the filename generation part does. Did you try running the fx function? Here it is again: function fx() { mkdir /tmp/x echo "echo hello" > /tmp/x/x chmod +x /tmp/x/x echo /tmp/x/*(x) [[ -n /tmp/x/*(x) ]] && echo Got nonzero string [[ -f /tmp/x/*(x) ]] && echo Globbed a file [[ -x /tmp/x/*(x) ]] && echo Globbed executable file [[ -x /tmp/x/x ]] && echo Found executable file rm -r /tmp/x [[ -n /tmp/x/*(x) ]] && echo Still got nonzero string [[ -x /tmp/x/x ]] || echo Found no executable file } The output I get is: zagzig% fx /tmp/x/x Got nonzero string Found executable file Still got nonzero string Found no executable file Note that "Globbed ..." was never output. If I replace all the [[ ... ]] with [ ... ] (single brackets), THEN I get zagzig% fx /tmp/x/x Got nonzero string Globbed a file Globbed executable file Found executable file zsh: no matches found: /tmp/x/*(x) > could a flag be added to the list of glob qualifiers that says "if no > matches are found, quietly return nothing but a non-zero exit status"? i > think "q" (for "quiet") is still free. There already is such a flag; it's (N) for NULL_GLOB, which acts like: zagzig% setopt nullglob zagzig% fx /tmp/x/x Got nonzero string Globbed a file Globbed executable file Found executable file Still got nonzero string Found no executable file (This again with [ ... ] but NOT with [[ ... ]].)