Баш делает это для тебя. Он уведомит вас о завершении процесса, вернув вам контроль, и сохранит статус выхода в специальной переменной $?
. Это выглядит примерно так:
someprocess
echo $?
Смотрите руководство по bash о специальных параметрах для получения дополнительной информации.
Но я полагаю, что вы хотите сделать другую работу во время ожидания. В bash вы можете сделать это следующим образом:
someprocess &
otherwork
wait %+
echo $?
someprocess &
запустит процесс в фоновом режиме. Это означает, что контроль вернется немедленно, и вы сможете выполнять другую работу. Процесс, запущенный в фоновом режиме, называется заданием в bash. wait
будет ждать завершения данного задания, а затем вернет статус завершения этого задания. На рабочие места ссылаются %n
. %+
относится к последней запущенной работе. Смотрите руководство bash о контроле за работой для получения дополнительной информации.
Если вам действительно нужен PID, вы также можете сделать это следующим образом:
someprocess &
PID=$!
otherwork
wait $PID
echo $?
$!
специальная переменная, содержащая PID последнего запущенного фонового процесса.
wait
работает? Сколько процессора он обычно берет из системы?