我有一个bash脚本可以完成一些工作,这很快就完成了。 它应该空闲,直到用户决定终止它,然后是一些清理代码。
这就是我使用以下代码捕获 CTRL + c 事件的原因:
control_c()
{
cleanup
exit 0
}
trap control_c SIGINT
但是由于我的脚本很快完成,我从来没有故意终止它,因此它永远不会陷入CTRL + c 并运行清理代码。
我认为我可以在脚本末尾实现无限do while
循环,sleep
,但我认为有更好的解决方案。
如何在bash中闲置脚本,期待 CTRL + c 事件?
答案 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...