Re: psychiatric help
Ray Andrews <[email protected]> Sun, 5 Apr 2026 10:27:55 -0700
| Newsgroups | gmane.comp.shells.zsh.devel,gmane.comp.shells.zsh.user |
|---|---|
| Message-ID | <[email protected]> |
On 2026-04-04 20:57, Bart Schaefer wrote:
If you need to copy $@ (et al.) into another variable, use array syntax:
> out=( $@ )
Tried this:
alias tt='noglob _tt'
function _tt ()
{
out=( $@ ) # Bart sez. Array will preserve hard space,
no backslash needed.
_execute 'ls $~out' # Need tilde here!
foo='ls $~out' # Literal string! Don't forget tilde, same as
above. Consistent.
_execute $foo # Plain vanilla var sends literal string, and
'eval' takes care of it.
}
run:
4 /aWorking/Zsh/Source/Wk 4 % test\ ?
test a
test b
test a
test b
... so that's got it under control. '_execute' boils down to a call to
'eval' as you suspect but it does a bunch of other stuff as well. Easy
to drop the ball tho, the chain of handoffs can be fuddled at any
point. Gotta get it right, I was making it harder than it is. 80% clarity.
Thank you Sensei.
BTW, polite of 'ls' to make multiline output when input is an array.