有时我启动一个需要很长时间才能完成的程序(emerge
),然后意识到我应该去睡觉而不是等待它。如果我一开始就知道这一点我就会跑
program; halt
但是,现在我已经启动了该程序,如何“安排”计算机在该过程完成时关闭?Ctrl+z
那么就可以fg; halt
了吗?
答案1
是的,那会起作用。
如果不确定,您可以使用以下命令进行测试
sleep 15
Ctrl+z
fg; echo "it works"
答案2
halt
另一种方法是在第一个命令运行时在终端中键入;只要第一个命令在某个时刻不读取输入,它就会位于终端的缓冲区中,并且 shell 将在第一个程序结束时读取它
答案3
使用wait
命令
$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+ Done sleep 10
hello