附加命令以在长时间运行的线程返回时执行

附加命令以在长时间运行的线程返回时执行

假设我刚刚启动了一个需要很长时间才能执行的命令,比如hg clone整个 Pypy 开发集。执行到一半时,我决定hg up在第一个进程返回后运行另一个进程,比如。有没有办法在进程返回时附加一个要执行的命令,而不用停止命令/进程,然后将其作为链式命令重新启动?命令/进程?

答案1

假设您正在使用bash,并且假设您将长时间运行的任务放入当前 shell 的后台,通过运行longtask &或启动任务然后按CTRL+ Z,那么您可以添加一个额外的命令来运行,例如:

$ sleep 45 &
[1] 27722
$ wait 27722 && echo "Done"
[1]+  Done   sleep 45
Done
$

在上面的例子中,仅在 PID 27722echo "Done"完成后才执行。wait

我还没有找到一种方法来将这个额外的命令放到后台,以便您继续在同一个 shell 中工作。但一定有办法做到这一点 - 希望这能给你一个开始。

相关内容