在bash中,我想运行一个后台进程,在进程运行时循环执行一些操作,一旦进程停止,我想获取它的返回代码。
这是我到目前为止所做的:
my_build_command
build_pid=$!
sleep 1
while [[ -d /proc/$build_pid ]]
do
# Do something...
sleep 1
done
# HOW TO GET THE RETURN CODE OF build_pid?
有可能实现我想要的目标吗?
答案 0 :(得分:2)
wait $pid
会返回相应后台进程的返回码
#!/usr/bin/env bash
(sleep 2; true) &
background_process1_pid=$!
(sleep 2; false) &
background_process2_pid=$!
echo "doing something"
wait $background_process1_pid
echo "background_process1 return code: $?"
wait $background_process2_pid
echo "background_process2 return code: $?"
答案 1 :(得分:0)
先前执行的程序的返回代码由echo $?
给出。
在您的情况下,您可能希望使用sleep 1
获取之前的值