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

Re: Parameter exansion, correction and small patch



"Kiddle, Oliver" wrote:
> Two questions:
> 
> First, how do I take the output of a command in $(...) and use the parameter
> expansion flags to split the output into an array for each line. I'm sure
> I've done this before but can't get it to work anymore. I've tried most
> things I can think of without success. For example:
>   echo ${${(f)$(ps)}% *}
> I would expect this to apply the '% *' substitution for each line of the
> output of ps but it does it for all the lines combined.

The key problem is with quoting.  We just introduced a tweak so that you
can now do
  echo ${${(f)"$(ps)"}% *}
since an unquoted $(ps) does word-splitting on all spaces.  The traditional
way of doing this was
  echo "${(@)${(@f)$(ps)}% *}"
but that's more cumbersome.

> Second, correction seems to be applied when I declare a function which can
> be annoying. e.g.
> zsh -f
> setopt correct
> les() {
> zsh: correct 'les' to 'els' [nyae]? n
> function>
> 
> You might consider this to be a bug but if not, is there any way of
> preventing it?

`correct' isn't all that flexible at the moment.  There ought to be a way
of fixing it internally.

-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>       Tel: +39 050 844536
WWW:  http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy



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