Shell-Script

Bash 腳本中多個文件的輸出命名變數

  • September 2, 2016

我創建了一個腳本,它將填充一系列 Jpg,在工作目錄中創建一個子目錄,將填充的 Jpg 移動到子目錄,更改到子目錄,然後使用 Imagemagick 的轉換命令覆蓋單個透明 .gif在填充的圖像上。除了最後一步之外,其他所有步驟都有效。如果我在一個 Jpg 文件上執行此腳本,它可以正常工作。但是當我在多個 Jpg 上嘗試它時,它只會在一個 Jpg 而不是其他 Jpg 上半工作。我假設我在最後一個命令中沒有使用正確的命名變數,但我沒有運氣找到更正。

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

我在成員 G-Man 的幫助下解決了這個問題。我需要一個循環:

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

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

引用自:https://unix.stackexchange.com/questions/272057