空闲bash脚本,直到记录CTRL + c事件

时间:2016-05-02 21:22:42

标签: linux bash sleep ctrl

我有一个bash脚本可以完成一些工作,这很快就完成了。 它应该空闲,直到用户决定终止它,然后是一些清理代码。

这就是我使用以下代码捕获 CTRL + c 事件的原因:

control_c()
{
  cleanup
  exit 0
}

trap control_c SIGINT

但是由于我的脚本很快完成,我从来没有故意终止它,因此它永远不会陷入CTRL + c 并运行清理代码。

我认为我可以在脚本末尾实现无限do while循环,sleep,但我认为有更好的解决方案。

如何在bash中闲置脚本,期待 CTRL + c 事件?

2 个答案:

答案 0 :(得分:3)

假设您已连接到TTY:

# idle waiting for abort from user
read -r -d '' _ </dev/tty

答案 1 :(得分:0)

以下内容将等待Ctrl-C,然后继续运行:

( trap exit SIGINT ; read -r -d '' _ </dev/tty ) ## wait for Ctrl-C
echo script still running...