Генерация имени файла из переменной в zsh без появления подоболочки
В zsh у меня есть шаблон glob в переменной, и я хочу определить другую переменную, которая выполняет генерацию имени файла для этого шаблона. Есть ли способ сделать это, не создавая подоболочки?
Следующее не работает:
x=foo*
y=$~x
Очевидно, я могу сделать
x=foo*
y=$(echo $~x)
и начинается регулярное поведение завершения. Но суть этого вопроса состоит в том, чтобы избежать порождения подоболочки, которая, как кажется, должна быть ненужной.
Этот вопрос не получил ответов в течение последних нескольких дней на stackoverflow.com, поэтому я решил, что попробую спросить здесь.
1 ответ
Решение
Если вы делаете y
массив, параметр $x
получить расширенный:
$ x=foo*
$ y=($~x)
$ print -l $y
foo1
foo2
Если вы хотите одну строку, объедините значения массива пробелами:
$ ys=${(j: :)y}
$ print -l $ys
foo1 foo2