Можно ли использовать вывод программы в качестве значений для расширения фигурной скобки? - PullRequest
3 голосов
/ 27 марта 2019

Я новичок в Linux. Я хотел бы знать, можете ли вы использовать выходные данные программы (значения, разделенные запятыми) в качестве значений, которые будут использоваться для расширений скобок.

В основном я пытался сделать это с помощью касания, но начал использовать эхо для проверки разных подходов, но безуспешно. базовый подход

echo b/{$(find sourceFolder -type f -printf "%f,")}

Я тоже пробовал кошку, но получил те же результаты. Вывод find используется как одно значение для фигурных скобок, а не нескольких значений, разделенных запятыми. Я подтвердил это с

echo b/{$(find sourceFolder -type f -printf "%f,"),otherValue}

с этим я получаю 2 выхода b / (с разделенным запятыми списком значений из find) и b / otherValue

Мне удалось создать файлы с прикосновением в текущей рабочей папке, которую я хотел узнать, возможно ли это сделать в другой папке.

Ответы [ 2 ]

3 голосов
/ 27 марта 2019

Это разочаровывает, но расширение скобки выполняется перед переменным расширением. Следовательно, вам нужен другой подход. Рассмотрим:

find sourceFolder -type f -printf "b/%f\n"

Это ставит b/ перед каждым найденным именем файла и не требует расширения скобки.

0 голосов
/ 27 марта 2019

Хотя вы не можете сделать это напрямую с помощью bash, вы можете использовать eval для получения того же результата:

$ eval "echo {$(echo 2,3),4}"
2 3 4
...