중괄호 확장 전에 명령 대체를 수행하고 싶지만 다음과 같은 작업을 수행할 수 없습니다.
$ 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
확실히
(그리고 당신은 $( ) 구문을 알고 있습니다)