To avoid slow code that opens unwanted bash instances using the $ (command) or command , you can use the parenthesis extension.
Repeat the file name 3 times:
file="image.png"; convert "${file[0]"{1..3}"}" many_images.png
or a more controversial version that uses a variable to indicate the number of duplicate file names:
n=10; file="image.png"; eval convert \"\${file[0]\"{1..$n}\"}\" many_images.png
How it works.
$ {file [0]} is the same as $ file or $ {file}
Bash first executes the brace extension, and therefore it makes up this sequence:
${file[0]1} ${file[0]2} ${file[0]3}
Bash kindly ignore these extra numbers to get
${file[0]} ${file[0]} ${file[0]}
Which makes it easier
${file} ${file} ${file}
and then
$file $file $file
This is what we want.
source share