Geração de nome de arquivo a partir da variável em zsh sem subcamar de desova

3

Em zsh, tenho um padrão glob em uma variável e desejo definir outra variável que execute a geração de nome de arquivo nesse padrão. Existe uma maneira de fazer isso sem gerar um subshell?

O seguinte não funciona:

x=foo*
y=$~x

Obviamente eu posso fazer

x=foo*
y=$(echo $~x)

e o comportamento de completação normal entra em ação. Mas o objetivo dessa questão é evitar gerar uma subcamada, o que parece ser desnecessário.

Esta questão não obteve respostas nos últimos dias no stackoverflow.com, por isso pensei em tentar perguntar aqui.

    
por sasquires 25.06.2018 / 21:29

1 resposta

2

Se você criar y uma matriz, o parâmetro $x get será expandido:

$ x=foo*
$ y=($~x)
$ print -l $y
foo1
foo2

Se você quiser uma única string, junte os valores da matriz com espaços em branco:

$ ys=${(j: :)y}
$ print -l $ys
foo1 foo2
    
por 25.06.2018 / 22:27