我想在另一个后台 Bash 作业中引用一个后台 Bash 作业。那可能吗?
例如,假设我开始了一项后台工作:
$ long_running_process &
[1] 12345
现在我希望在该工作完成时发生一些事情,所以我可以使用wait
:
$ wait %1 && thing_to_happen_after_long_running_process_finishes
但是,这会阻塞,我希望我的终端回来做其他事情,但Ctrl+Z什么也不做。
首先尝试在后台启动它会失败:
$ { wait %1 && thing_to_happen_after_long_running_process_finishes; } &
[2] 12346
-bash: line 3: wait: %1: no such job
$ jobs
[1]- Running long_running_process &
[2]+ Exit 127 { wait %1 && thing_to_happen_after_long_running process_finishes; }
有没有办法wait
在另一个后台工作中引用一个工作?
我使用 GNU Bash 4.1.2(1)-release 看到了这种行为。