Пример скрипта ниже позволяет создавать множество процессов внутри одного bash скрипта, показывать код возврата и выводить логи вывода после завершения задачи:
#!/usr/bin/env bash
# Do smth
for job in 1 2 3; do
echo "Starting job #${job}"
echo "Job done" > $job.log 2>&1 &
done
echo "Waiting for job results..."
FAIL=0
for job in $(jobs -p)
do
wait "$job" || (( FAIL++ ))
echo "Job PID #${job} finished with code: $?"
done
for job in 1 2 3; do
echo -e "\\n ======== Results for job #${job} ========"
cat $job.log
done
if [ "$FAIL" != "0" ];
then
exit 1
fi