Bash 脚本中多个文件的输出命名变量

Bash 脚本中多个文件的输出命名变量

我创建了一个脚本,它将填充一系列 Jpg,在工作目录中创建一个子目录,将填充的 Jpg 移动到子目录,更改到子目录,然后使用 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

相关内容