Идея распараллелить цикл родилась у меня в тот момент, когда я скормил моему предшествующему скрипту пару сотен маршрутизаторов. Время выполнения было оооочень большим, около часа с небольшим. Мне показалось это не правильным и я задумался как ускорить процесс. В этой статье я не буду изменять мой предыдущий скрипт, а лишь покажу как можно распараллелить цикл в bash. И так имеем следующий цикл: while read line
do
program &line
done < fileinput.txt тут все просто, цикл читает каждую линию в файле «fileinput.txt» и подставляет эту линию в опцию для команды «program». Как только команда «program» завершится то цикл подставляет следующую строчку из файл «fileinput.txt» команде «program» и так пока строчки в файле не закончатся. Таким образом наша команда за раз выполняется однажды и скорее всего загружает всего одно ядро в нашем процессе, а остальные тупо простаивают. Для распараллеливания и загрузки всех ядер я предлагаю внести небольшие изменения в наш цикл: while read line
do
program &l