나는 이상한 상황에 빠졌습니다. 35개의 폴더가 있습니다. 첫 번째 이름은 1, 두 번째 이름은 2 등으로 지정됩니다. 각 폴더에는 4개의 파일이 있습니다. '1.png', '2.png', '3.png', '4.png'. 이러한 각 폴더에서 "convert *.png -append out.pdf"를 실행하고 원래 디렉터리 다음에 각 'out.pdf'의 이름을 바꾸고(예: 첫 번째 폴더의 'out1.pdf') 각 압축을 풀고 싶습니다. pdf 원본 폴더에서. 이것이 가능한가? 루프를 시도했지만 시도한 모든 것이 명명 시스템에 동의하지 않는 것 같습니다.
답변1
다음과 같이 시도해 보세요.
#!/bin/sh
for dir in $(seq 1 35)
do
(
cd $dir || exit 1
rm -f out$dir.pdf
for n in 1 2 3 4
do
convert $n.png -append out$dir.pdf || exit 2
done
)
done
bash
이 스크립트는 posix와 호환되며 가 필요하지 않으므로 #!/bin/sh
.
괄호 사이의 코드는 하위 쉘에서 실행되므로 cd
명령은 닫는 괄호까지만 디렉터리를 변경합니다. 루프의 다음 반복은 원래 작업 디렉터리에서 시작됩니다.
귀하의 예에서는 구문이 convert
잘못된 것 같습니다. Convert는 하나의 입력 파일만 사용하며 원래 질문에서는 *.png
4개의 입력 파일을 전달합니다. 아마도 그것은 당신의 문제의 일부일 것입니다.