zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@sunsite.dk
Subject: Re: Ex-bash script for optimisation
Date: Fri, 11 Mar 2005 04:48:46 +0000	[thread overview]
Message-ID: <1050311044847.ZM9336@candle.brasslantern.com> (raw)
In-Reply-To: <62u0315opl6kubat89fmdng5dg4m4370o0@4ax.com>
In-Reply-To: <42308ED6.6030007@Sun.COM>

Comments on script style:

None of the variables is declared (with "declare" or "local") so this is
probably not suitable for use as an autoloaded shell function.

"filebad" is set but not used, and there's no reason to use "let" syntax
if you're not doing arithmetic (in the assignment of 1 to filebad).

On Mar 10,  4:43pm, zzapper wrote:
} Subject: Ex-bash script for optimisation
}
} Q1) Is there a better way to generate the array filelst

Sure.  You don't need the loop, just do a glob with an extended pattern.

#--- snip ---
setopt local_options extended_glob null_glob
filelst=( *$1*~*.(aux|toc|dvi|aux|exe|obj|zip|pdf|mdb|xls|bak|swp|log|jpg|gif|tiff|jpeg|bmp) )
#--- snip ---

If you want to allow $1 to be a pattern rather than a fixed string, you
need *${~1}* instead.

If you want to allow multiple arguments to the script, you need *${^*}*
or for multiple patterns *${^~*}*

In the event that you really need to loop, zsh 4.2+ supports array append
with the syntax:	filelst+=($x)

} Q2) the line "for x in *$1*" fails is no match, how can i "catch" this

Peter Miller's *$1*(N) suggestion is equivalent to the "null_glob"
setting in my example above.


  reply	other threads:[~2005-03-11  4:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-10 16:43 zzapper
2005-03-10 18:15 ` Peter Miller
2005-03-11  4:48   ` Bart Schaefer [this message]
2005-03-11  9:04     ` zzapper
2005-03-13 18:46     ` zzapper
2005-03-13 19:23       ` Bart Schaefer
2005-03-10 18:42 Meino Christian Cramer
2005-03-11  5:14 ` Bart Schaefer

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=1050311044847.ZM9336@candle.brasslantern.com \
    --to=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).