是否可以添加在当前运行的命令完成时运行的命令?

是否可以添加在当前运行的命令完成时运行的命令?

在终端中运行耗时进程时,我喜欢添加类似这样的say "done"附加命令,以便在当前进程结束时收到警报。例如:

$ do_this_long_thing; say "done";

效果很好。但有时我会忘记say "done"命令,直到长命令运行时才意识到。有没有办法在命令运行时将附加命令添加到队列中?

答案1

我的解决方案是:使用 Control+Z 暂停长时间运行的任务,然后输入如下内容:

fg; echo "Done!"

如果您想根据命令的成功或失败以不同的方式运行反应,请使用 && 和 || 作为短路运算符。

fg && echo "Success!" || echo "Failure!"

来源:如何在 bash 中在当前运行命令后执行命令?

答案2

在运行长时间运行命令的终端中,只需输入 done 并按回车键。当长时间运行的命令完成时,shell 会将您输入的内容作为下一个要运行的命令。这假设长时间运行的命令不需要从 stdin 读取任何内容,

相关内容