Использую цикл
#!/bin/bash
z1=({0..3}); z2=({4..7}) #...
for((i = 1; i < 3; ++i)); do
declare -n a=z$i
for n in ${a[@]}; do
echo montage -monitor /untitled/a/$i/$n.jpg -geometry +0+0 -tile 4x1 /untitled/b/$i.jpg
done
done
В результате оно просто перезаписывает изображение в 1.jpg и 2.jpg, но не склеивает в 1 файл
montage -monitor /untitled/a/1/0.jpg -geometry +0+0 -tile 4x1 /untitled/b/1.jpg
montage -monitor /untitled/a/1/1.jpg -geometry +0+0 -tile 4x1 /untitled/b/1.jpg
montage -monitor /untitled/a/1/2.jpg -geometry +0+0 -tile 4x1 /untitled/b/1.jpg
montage -monitor /untitled/a/1/3.jpg -geometry +0+0 -tile 4x1 /untitled/b/1.jpg
montage -monitor /untitled/a/2/4.jpg -geometry +0+0 -tile 4x1 /untitled/b/2.jpg
montage -monitor /untitled/a/2/5.jpg -geometry +0+0 -tile 4x1 /untitled/b/2.jpg
montage -monitor /untitled/a/2/6.jpg -geometry +0+0 -tile 4x1 /untitled/b/2.jpg
montage -monitor /untitled/a/2/7.jpg -geometry +0+0 -tile 4x1 /untitled/b/2.jpg
Если выполнить так, то работает, но вручную прописывать не подходит:
montage -monitor /untitled/a/1/{0..3}.jpg -geometry +0+0 -tile 4x1 /untitled/b/1.jpg
montage -monitor /untitled/a/2/{4..7}.jpg -geometry +0+0 -tile 4x1 /untitled/b/2.jpg