Если у вас есть bash 4.2 или более поздняя версия, вам может быть полезно следующее. Он использует ассоциативные массивы для хранения имен задач и их «кода», а также имен задач и их pids. Я также встроил простой метод ограничения скорости, который может пригодиться, если ваши задачи потребляют много ресурсов ЦП или ввода-вывода и вы хотите ограничить количество одновременных задач.
Скрипт запускает все задачи в первом цикле и использует результаты во втором.
Это немного излишне для простых случаев, но допускает довольно аккуратные вещи. Например, можно хранить сообщения об ошибках для каждой задачи в другом ассоциативном массиве и распечатывать их после того, как все установится.
(Я скопировал этот ответ из моего ответа здесь , потому что он решает оба вопроса, если это не так, пожалуйста, сообщите мне или замените его просто ссылкой или другим подходящим вариантом.)
* * 1010