Когда вы используете расширение скобок в Bash, что-то вроде
echo {a,b,c}
становится
echo a b c
Есть ли способ расширить его до 3 отдельных команд, по одной для каждого расширения, вместо этого?
И что:
echo {a,b,c}
станет
echo a
echo b
echo c
file-{r,b,g}{m,n,o}{x,y.z}.foo
то лучше использовать краткую форму, чем перечислять все 27 значений.for
работах для этого, но это еще более типирование: Peval git branch -d \{ branch-a, branch-b }\;
Основываясь на выбранном ответе Марка Манна , я смог получить следующий пример, который прекрасно работает:
Это показывает, что когда вы используете множественные вхождения фигурных скобок в пределах строки, оригинальный пример Марка напечатал бы каждый вариант отдельно. Вместо этого я хотел использовать его ответ для перемещения / переименования нескольких файлов. Для того, чтобы гарантировать , что выходной сигнал соответствует формату , который
mv
обычно ожидает (mv oldfilename newfilename
), я избегал второго вхождения расширения распорки, так что она не будет оценена , пока после того, как начальноеeval
командование выполняется.Поскольку вышеприведенный вывод выглядел, как и ожидалось, я смог выполнить следующую команду:
Большое спасибо Марку за его оригинальный ответ. Пожалуйста, проголосуйте за его ответ, если вам нравится, что его ответ позволил мне сделать :-)
источник
источник