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

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

중괄호 확장 전에 명령 대체를 수행하고 싶지만 할 수 없습니다.

$ 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형식 문자열을 제공합니다
  • .0f0 십진수 부동소수점의 경우
  • .pdf분명한

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

관련 정보