我抓到一个CtrlC做一个清理是更正确的退出程序kill('INT', $$)
比退出程序exit()
?如何在获取Ctrl + C后退出?
回答
按Ctrl - ç发送INT
信号到你的过程。处理,经过发送另一个INT
是没用的:
perl -E'$SIG{INT}=sub{say "interrupted"; $c++ < 5 and kill INT => $$}; <>'
这是贯彻落实递归 goto的一种不寻常的方式,但没有^C ^C ^C
量将终止程序。 (按回车键退出)。
如果你想exit
该程序,做到这一点(最好具有非零状态)。
从perlmod
相关报价:
的
END
代码块尽可能晚地执行,也就是说,perl的运行完毕的程序和之前的解释正在退出,即使后它由于die()
函数而退出。 (但如果它是通过exec
变形到另一个程序,或由被吹出来的水的信号,你有陷阱,自己(如果可以的话)。
即自中断kill INT => $$
不会执行END
默认情况下,这可能源自“让困难的事情成为可能”的理念,除非某些退出操作需要很长时间才能运行,您仍然应该在INT
或TERM
信号上执行它们,如果用户立即关机, KILL
。
在kill('INT',$$)'之前,我会将$ SIG {INT}设置回“DEFAULT”。 – 2013-05-12 12:38:21
@sid_com好的,在这种情况下,关键是你是否想要运行'END'块。没有几个理由,所以'出口'仍然是可取的。 – amon 2013-05-12 13:00:11
- 1. 无法捕获ctrl-c退出函数退出bash脚本
- 2. 如何在Turbo C++中按Ctrl + Break而无限循环退出
- 3. 按Ctrl + C退出Go程序
- 4. Windows PowerShell不退出脚本与Ctrl-C
- 5. 在退出+目标c后获取数组中的值
- 6. 使用Ctrl-C退出tkinter应用并捕获SIGINT
- 7. 如何退出在C#
- 8. 如何从自己获取最后退出时间戳?
- 9. 如何在Mac上退出Meteor开发服务器(与CTRL-C等效)?
- 10. 如何CTRL-C
- 11. Python线程在Python中按ctrl-c退出
- 12. Windows Python解释器在Ctrl + C上退出
- 13. 如何在不使用ctrl-d的情况下退出swift repl?
- 14. 当按下Ctrl + C时,禁用“类型:退出<Enter>退出Vim”消息
- 15. Google在退出后如何处理后退按钮?
- 16. atexit,c退出代理#
- 17. 如何在emacs退出后自动退出ansi-term?
- 18. 如何让我的程序在进入退出后退出
- 19. 如何在TimePickerDialog弹出后获取TimePicker
- 20. 无法用^ C退出
- 21. 在Java中捕获Ctrl + C
- 22. 获取的后退按钮
- 23. 退出一个while循环,cin。使用CTRL-Z/CTRL-d不工作C++
- 24. 如何捕获WPF/C#中的CTRL-BACKSPACE?
- 25. 如何使用Ctrl + D退出,如使用execl bash?
- 26. 如何在JFileChooser OK按下后退出?
- 27. 如何取消JFrame退出?
- 28. Vb.net捕获Ctrl + C
- 29. 如何在执行特定时间后退出主函数C
- 30. GetExitCodeProcess在进程不存在时如何获取退出代码
是什么给了你这个想法?为什么要这样“更正确”? – innaM 2013-05-12 11:49:06
因为迄今为止据我所知,这就是Ctrl + C如果我没有抓到它会做的。 – 2013-05-12 13:50:43