进程在不同的 shell 中终止后执行命令

Dam*_*shu 7 bash shell command-line

我正在运行一个命令,该命令在一个 shell 窗口中处理一些数据(假设它的 pid 为 200)。不幸的是我忘记添加 & 在后台运行它。

pid 200 完成后我需要运行一些分析脚本。我以为我可以打开另一个 shell 窗口然后做

wait 200; ./myanalysis.sh
Run Code Online (Sandbox Code Playgroud)

但它向我抱怨

"-bash: wait: pid 200 is not a child of this shell"
Run Code Online (Sandbox Code Playgroud)

考虑到这一点,有没有一种方法可以在此过程终止后自动执行我的分析脚本?

Ofi*_*fir 2

您可以使用^z然后执行以下操作吗?

wait 200; ./myanalysis.sh&
fg %1
Run Code Online (Sandbox Code Playgroud)

这将等到 pid200完成,然后运行您的分析,然后将其自身置于前台。