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

Re: glob inside nested parameter expansion returns glob string



On Thu, Apr 21, 2022 at 11:51 AM Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
>
> On 4/21/22, Jim <linux.tech.guy@xxxxxxxxx> wrote:
> >
> > % A=(${:-.z*(.N)})
> > % A=(${A:#*(comp|hist)*})
> >
> > Is there a way to nest the two?
>
> There is a certain order that parameter expansions and globs happen
> relative to eachother [...] In short, no(t as far as I know).

Correct, this can't be done as a nested expansion, except by invoking
a subshell to perform the globbing.

A=(${${(@f):-$(print -rl .z*(.N))}:#*(comp|hist)*})

However, with extendedglob this specific example can be done entirely
with globbing:

A=( .z*~*(comp|hist)*(.N) )




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