如何让Ruby的IRB在按下CTRL+C时退出
让IRB按下CTRL+C时直接退出的方法
默认情况下,Ruby的IRB按下CTRL+C只会中断当前执行的代码或清空输入行,并不会退出IRB会话。要修改这个行为,可以通过以下两种方式实现:
1. 临时加载脚本实现
创建一个自定义脚本文件,比如命名为exit_on_sigint.rb,在文件中写入以下代码:
trap('INT') { exit }
启动IRB时通过-r参数加载这个脚本:
irb -r ./exit_on_sigint.rb
这样启动的IRB会话中,按下CTRL+C就会直接退出IRB进程。
2. 全局配置永久生效
如果希望每次启动IRB都自动生效,可以将上述代码添加到IRB的初始化文件~/.irbrc中(文件不存在则新建)。添加后,每次打开IRB都会自动应用这个信号处理逻辑,无需额外参数。
原理说明:IRB默认对INT信号(CTRL+C触发的信号)的处理是中断当前操作而非退出,我们通过trap方法重写了这个信号的处理逻辑,让程序收到信号时直接调用exit方法终止进程。
内容的提问来源于stack exchange,提问作者Alex Craft
相关产品推荐
相关产品推荐

