我想重複下列命令多次:末端重複命令,使用變量,新的輸出名字
composite -geometry +0+20 foreground.jpg background.jpg composite001.jpg
可以說,我要運行該命令50次,加入3到每次當前爲+0,並且每次輸出的名稱都加1。我怎樣才能做到這一點?
我想重複下列命令多次:末端重複命令,使用變量,新的輸出名字
composite -geometry +0+20 foreground.jpg background.jpg composite001.jpg
可以說,我要運行該命令50次,加入3到每次當前爲+0,並且每次輸出的名稱都加1。我怎樣才能做到這一點?
在bash
最簡單的方法是使用C風格for
循環來遍歷的x
(對於幾何形狀)和i
(以生成輸出文件)所需的值。
for ((i=0, x=0; i<50; i++,x+=3)); do
printf -v output 'composite%03d.jpg' "$x"
composite -geometry +"$x"+20 foreground.jpg background.jpg "$output"
done
你可以把它符合POSIX標準沒有太多的精力,但在需要在一個子shell運行printf
的成本。
i=0 x=0
while [ "$i" -lt 50 ]; do
output=$(printf 'composite%03d.jpg' "$x")
composite -geometry +"$x"+20 foreground.jpg background.jpg "$output"
: $((i+=1)) $((x+=3))
done
非常感謝。這正是我想要的。 – LnxNewby
用bash,你可以試試這個。
for n in {1..50}; do
FILENAME=$(printf "composite%03d.jpg" $n)
X=$(((n-1)*3))
composite -geometry +$X+20 foreground.jpg background.jpg $FILENAME
done
第3行似乎有錯誤,只是爲了通知您。 – LnxNewby
'for i in {0..150..3};做複合-geometry + $ i + 20 ... .jpg; done'? (僅適用於Bash) –