OutputNamingVariable para vários arquivos no script Bash

1

Eu tenho um script que criei para preencher uma série de Jpgs, criar um subdiretório no diretório de trabalho, mover os Jpgs preenchidos para o subdiretório, mudar para o subdiretório e depois usar o comando convert do Imagemagick para sobrepor um único arquivo. transparente .gif sobre as imagens preenchidas. Tudo exceto o último passo funciona. Se eu executar este script em um arquivo Jpg, ele funcionará corretamente. Mas quando eu tento em vários Jpgs, ele funciona apenas em um Jpg e não nos outros. Eu suponho que não estou usando a variável de nomeação correta no último comando, mas não estou tendo sorte para encontrar a correção.

Script de bash:

#!/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
    
por user8547 25.03.2016 / 07:27

1 resposta

1

Eu resolvi o problema com a ajuda do membro G-Man. Eu precisava de um loop:

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

convert ggg.gif "$i" -background black -gravity center -compose dstover -composite $c.jpg
done
    
por 25.03.2016 / 08:41