Lo siguiente debería funcionar para sus necesidades:
#!/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 crea la primera imagen, y luego se copia para formar 1700 archivos. Si ulimit
no le impide hacerlo (probablemente lo hará) y tiene suficientes descriptores de archivo, puede reemplazar el ciclo con:
tee img_{1..1699}.jpg > /dev/null < img_0.jpg
También puede usar el modismo más corto (con un requisito de memoria más grande para almacenar todos los números a la vez) for _num in {1..1699}
en bash
versiones recientes , pero no especifica qué shells están disponibles. ((
está disponible en la mayoría de los shells ( bash
, ksh
y ash
al menos, no estoy seguro acerca de otros).