Пример скрипта ниже позволяет создавать множество процессов внутри одного bash скрипта, показывать код возврата и выводить логи вывода после завершения задачи:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/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 |