Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Shell argument splitting behaviour
- X-seq: zsh-workers 25792
- From: Peter Stephenson <pws@xxxxxxx>
- To: zsh-workers@xxxxxxxxxx (Zsh hackers list)
- Subject: Shell argument splitting behaviour
- Date: Wed, 01 Oct 2008 14:02:02 +0100
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
I disovered this inconvenience in the parameter splitting flag (z) which
splits words in a similar way to how command line arguments are handled.
foo="(one) (two) (three)"
print -l ${(z)foo}
prints
(
one
)
(two)
(three)
That's because the command word in the line is treated differently; in
this case, it looks like the start of a subshell. I wasn't expecting it
when splitting a string, because it's just an arbitrary set of words,
and my first reaction was to change it (which is easy enough) but I
suppose you can think of it as a feature. The same feature occurs when
the line editor splits arguments: in insert-last-word and
copy-prev-shell-word. In those cases the current behaviour is right,
although it'll only rarely make a difference.
I thought I'd mention it in case anyone else had any reactions.
What I was trying to do was use this to get lisp-like lists of
arguments (since after the first word parentheses have to be balanced),
but I can get that to work just by putting a dummy word in front, so
it's actually not a major concern.
--
Peter Stephenson <pws@xxxxxxx> Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070
Messages sorted by:
Reverse Date,
Date,
Thread,
Author