중괄호 확장 전에 명령 대체를 수행하는 방법은 무엇입니까?

중괄호 확장 전에 명령 대체를 수행하는 방법은 무엇입니까?

중괄호 확장 전에 명령 대체를 수행하고 싶지만 다음과 같은 작업을 수행할 수 없습니다.

$ 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확실히

(그리고 당신은 $( ) 구문을 알고 있습니다)

관련 정보