Как в Bash загрузить несколько файлов и склеить в один?
Подробно разбирал тут
Практически на 80% вам подходит
https://klondike-studio.ru/blog/bitrixtar/?sphrase...
mkfifo /tmp/content/$i
  curl -s "${urls[$i]}" > /tmp/content/$i &
Bash делает, что-то невероятное - вместо N параллельных запросов, каждый из которых выполнится за 1-2 сек (а значит вся закачка+сборка займет пару секунд), он делает запросы последовательно
Ну учи матчасть, что ли. Ты заставил curl выводить результаты в FIFO вместо того, чтобы выводить их в файлы, а у FIFO совсем маленький буфер, после заполнения которого запись в FIFO блокируется, пока из него не начнётся чтение.
Если уж хотелось параллельности, можно было сделать так:rm -rf /tmp/content
mkdir /tmp/content

for i in ${!urls[@]}; do
  curl -s "${urls[$i]}" > /tmp/content/$i &
done

wait
rm -f /tmp/output

for i in ${!urls[@]}; do
  cat /tmp/content/$i >> /tmp/output
done