Bash 스크립트의 여러 파일에 대한 명명된 변수 출력

Bash 스크립트의 여러 파일에 대한 명명된 변수 출력

일련의 Jpgs를 채우고 작업 디렉토리에 하위 디렉토리를 생성하고 채워진 Jpgs를 하위 디렉토리로 이동하고 하위 디렉토리로 변경한 다음 Imagemagick의 변환 명령을 사용하여 채워진 단일 투명 .gif를 덮어쓰는 스크립트를 만들었습니다. 이미지. 마지막 단계를 제외한 모든 단계가 작동합니다. Jpg 파일에서 이 스크립트를 실행하면 제대로 작동합니다. 하지만 여러 Jpg에서 시도하면 한 Jpg에서는 절반만 작동하고 다른 Jpg에서는 작동하지 않습니다. 마지막 명령에서 올바른 이름의 변수를 사용하지 않는다고 가정하고 있지만 올바른 방법을 찾지 못했습니다.

쿵쿵 스크립트:

#!/bin/bash

if yad \
--image "dialog-question" \
--title "Alert" \
--button=gtk-yes:0 \
--button=gtk-no:1 \
--text "Have you resized JPGs?"

then
  convert *.jpg "$i" -bordercolor black -border 120x0 "pad$i.jpg"

mkdir -p ./padded; mv pad*.jpg $_

cd padded

cp /home/mastergif/ggg.gif /home/test/padded

convert ggg.gif *.jpg "$i" -background black -gravity center -compose dstover -composite $i*.jpg
exec bash
else
exit 1
fi

답변1

저는 이 문제를 멤버 G-Man의 도움으로 해결했습니다. 루프가 필요합니다.

for i in *.jpg; do
c=$(($c+1))

convert ggg.gif "$i" -background black -gravity center -compose dstover -composite $c.jpg
done

관련 정보