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

Ruby prevent default CTRL+C output ^C

我正在用

捕捉信号
rescue Interrupt => e

但它总是打印:

^CShutting down!

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

^C

有什么想法吗?

一些终端支持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