
Я хотел бы выполнить замену команд перед раскрытием фигурных скобок, но не смог:
$ ls {$(seq -s , 13 20)}.pdf
ls: cannot access {13,14,15,16,17,18,19,20}.pdf: No such file or directory
Как мне это сделать?
решение1
Вам просто нужно использовать eval
встроенную функцию оболочки:
$ eval ls {$(seq -s , 13 20)}.pdf
Куда eval
берёт переданные ему аргументы:
ls {$(seq -s , 13 20)}.pdf
и объединяет их в одну команду:
ls {13,14,15,16,17,18,19,20}.pdf
который затем считывается и выполняется оболочкой.
$ eval ls {$(seq -s , 13 20)}.pdf
13.pdf 14.pdf 15.pdf 16.pdf 17.pdf 18.pdf 19.pdf 20.pdf
решение2
попытался ли ты
ls $(seq -f %.0f.pdf 13 20 )
-f
дает строку формата.0f
для 0 десятичных цифр с плавающей точкой.pdf
очевидный
(и вы знаете о синтаксисе $( ) )