BASH - 陷阱 Ctrl+C 在退出前清除进程
BASH - Trap Ctrl+C to clean process before quiting
我想在我的脚本中捕获 Control + C 以便我可以在退出脚本之前进行一些清理。到目前为止我有这个:
trap ctrl_c INT
main_script() {
#State of the art technology happening here
}
ctrl_c() {
#Do some cleaning
exit 1
}
问题是在我按下 Control + C 并返回控制台后,控制台行为异常。我再也看不到我的键盘输入,按回车键也不会换行。例如,这是我的控制台的样子:
root@ZonkedCream:~# root@ZonkedCream:~# root@ZonkedCream:~#
感谢帮助
我们没有您脚本的源代码,所以...只是猜测。
可能您的脚本以某种方式更改了 stty 设置,并且当您使用 CTRL-C 中断应用程序时它们没有恢复。
我建议您在脚本启动后立即保存 stty 标志,并在 ctrl_c() 函数中恢复它们,或者 - 至少 - 在 [=17= 中使用 stty sane
]() 退出前。
我想在我的脚本中捕获 Control + C 以便我可以在退出脚本之前进行一些清理。到目前为止我有这个:
trap ctrl_c INT
main_script() {
#State of the art technology happening here
}
ctrl_c() {
#Do some cleaning
exit 1
}
问题是在我按下 Control + C 并返回控制台后,控制台行为异常。我再也看不到我的键盘输入,按回车键也不会换行。例如,这是我的控制台的样子:
root@ZonkedCream:~# root@ZonkedCream:~# root@ZonkedCream:~#
感谢帮助
我们没有您脚本的源代码,所以...只是猜测。
可能您的脚本以某种方式更改了 stty 设置,并且当您使用 CTRL-C 中断应用程序时它们没有恢复。
我建议您在脚本启动后立即保存 stty 标志,并在 ctrl_c() 函数中恢复它们,或者 - 至少 - 在 [=17= 中使用 stty sane
]() 退出前。