Пример скрипта ниже позволяет создавать множество процессов внутри одного 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