Ruby防止默认CTRL + C输出^ C.

时间:2015-06-25 12:06:16

标签: ruby signals rescue

我正在用

捕捉信号
rescue Interrupt => e

但它始终打印:

^CShutting down!

有没有办法阻止默认的 CTRL + C 输出:

^C

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

某些终端支持stty -echoctl禁用控制字符的回显:

`stty -echoctl`

begin
  loop do
    # ...
  end
rescue Interrupt => e
  puts 'shutting down'
end

如果以上操作不起作用,您可以将IO#echo=设置为false来禁用所有回显:

require 'io/console'

STDIN.echo = false

begin
  loop do
    # ...
  end
rescue Interrupt => e
  puts 'shutting down'
end