Для ваших потреб працює наступне:
#!/bin/bash
convert -size 1000x706 xc:white img_0.jpg || { printf '%s\n' 'Failed to create original image' ; exit 1 ; }
for (( _num = 1 ; _num < 1700 ; _num++ )); do
cp img_0.jpg "img_${_num}.jpg" || { printf '%s\n' "Failed to copy to image img_${_num}.jpg" ; exit 2 ; }
done
ImageMagick створює перше зображення, а потім воно копіюється для створення 1700 файлів. Якщо вас ulimit
це не обмежує (це, мабуть, буде) і у вас є достатньо дескрипторів файлів, ви можете замінити цикл на:
tee img_{1..1699}.jpg > /dev/null < img_0.jpg
Ви також можете використовувати більш коротку ідіому (з більшою потребою в пам'яті для зберігання всіх номерів одразу) for _num in {1..1699}
в останніх bash
версіях, але ви не вказуєте, які оболонки доступні. ((
доступний у більшості оболонок ( bash
, ksh
і, ash
принаймні, не впевнений у інших).