boo*_*ull 6 linux bash sleep ctrl
我有一个 bash 脚本可以完成一些工作,而且完成得相当快。然后它应该空闲,直到用户决定终止它,然后是一些清理代码。
这就是我使用以下代码捕获CTRL+c事件的原因:
control_c()
{
cleanup
exit 0
}
trap control_c SIGINT
Run Code Online (Sandbox Code Playgroud)
但是由于我的脚本完成得非常快,我永远不会故意终止它,因此它永远不会捕获 CTRL+c并运行清理代码。
我想我可以在脚本的末尾实现一个无限do while循环sleep,但我认为有更好的解决方案。
如何在 bash 中空闲脚本,期待CTRL+c事件?
Cha*_*ffy 10
假设您已连接到 TTY:
# idle waiting for abort from user
read -r -d '' _ </dev/tty
Run Code Online (Sandbox Code Playgroud)
以下将等待 Ctrl-C,然后继续运行:
( trap exit SIGINT ; read -r -d '' _ </dev/tty ) ## wait for Ctrl-C
echo script still running...
Run Code Online (Sandbox Code Playgroud)