' 사이에 변수를 사용하세요.

' 사이에 변수를 사용하세요.

원래 줄 중 하나가 다음과 같은 bash 스크립트가 있습니다.

convert '%d.jpg[1-300]' combined.pdf

Imagemagick의 변환을 사용하여 순차적으로 번호가 매겨진 다수의 jpg를 PDF로 병합합니다.

변경 가능한 페이지 수에 대한 사용자 입력을 받아들이는 기본 스크립트를 작성하고 스크립트가 실행되는 동안 read -p를 사용하여 300을 사용자 설정 변수로 바꿔 보았습니다. 이를 통해 다음을 달성했습니다.

convert '%d.jpg[1-$pages]' combined.pdf

스크립트의 나머지 부분은 잘 작동하지만 이 줄에서는 실패하는데 그 이유는 모르겠습니다. 어떤 제안이 있으십니까?

나는 이것이 잘못된 구분 기호와 관련이 있다고 생각하지만 찾아야 할 올바른 것을 모르겠습니다.

답변1

매개변수 확장은 작은따옴표 내에서 수행되지 않습니다. 그러나 큰따옴표 내에서 실행되므로 다음과 같습니다.

convert "%d.jpg[1-$pages]" combined.pdf

[어떤 경우든 대부분의 쉘에서 glob 연산자가 특별하기 때문에 어떤 형태의 인용이 필요합니다 ( fish이것은 주목할만한 예외이지만 fish어쨌든 이전 버전에서는 특별합니다 ). 그리고 인용되지 않은 것을 제외한 %모든 Bourne과 유사한 쉘에서 zsh인수 확장은 분할+glob의 영향을 받으며 이는 바람직하지 않습니다.

관련 정보