ruby 如何让irb在CTRL + C上退出

lmyy7pcs  于 2023-04-05  发布在  Ruby
关注(0)|答案(1)|浏览(133)

默认情况下,ruby的irb在CTRL+C被按下时不会退出。
有没有办法改变它,使它退出?也许需要一些脚本irb -r some_script.rb,将使它退出时,CTRL+C按下?

klsxnrf1

klsxnrf11#

好吧,我不得不在做了一个黑客解决方案后在源代码中看到它,并意外地发现了这个:

  • 网址:http:github.com/ruby/irb/blob/v1.6.3/lib/irb/context.rb#L239-L247*
# Whether <code>^C</code> (+control-c+) will be ignored or not.
#
# If set to +false+, <code>^C</code> will quit irb.
#
# If set to +true+,
#
# * during input:   cancel input then return to top level.
# * during execute: abandon current execution.
attr_accessor :ignore_sigint

你可以这样设置:

# .irbrc

IRB.conf[:IGNORE_SIGINT] = false

Ctrl-C和Ctrl-D是非常标准的,在任何地方都可以使用。在ruby中,trap方法是你捕获信号的方式,以防你需要它来做其他事情:

>> trap("INT") { puts "see ya"; exit }
>> # Ctrl-C
see ya
$

相关问题