I agree that
printf+
xargs is generally the way to go, but another option would be to splice the array with a c-style
for loop, to limit the number of entries processed at once.
Code:
for (( i=0; i<${#array[@]} ; i+=50 )); do
mycommand "${array[@]:i:50}"
done
This will run the command on 50 entries at a time.