从 bash 中的后台进程获取退出代码

从 bash 中的后台进程获取退出代码

我有一个 Bash 脚本,可以在后台执行命令,可以在命令执行期间显示进度条,这是代码:

# Background command
dpkg -i $DPKG_COMMAND >/dev/null &

# Progress-Bar
while ps | grep $! &>/dev/null; do
  echo -n "."
  sleep 0.5
done

EXIT_CODE=???????

...但我需要知道后台进程的退出代码才能确定如何继续执行我的脚本。

答案1

如果您不想等待子进程,因为这样会挂起您的进程,直到子进程完成为止,您可以使用信号 SIGCHLD 的“trap”命令。这样,您的父进程就可以继续执行操作,直到子进程终止,此时将执行“trap”语句。然后,根据结果,您可以采取所需的任何操作。

相关内容