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

Ruby防止默认CTRL+;C输出^C,ruby,signals,rescue,Ruby,Signals,Rescue,我正在用无线电捕捉信号 rescue Interrupt => e 但它总是打印: ^CShutting down! 有没有办法阻止默认的CTRL+C输出: 有什么想法吗?一些终端支持stty-echoctl来禁用控制字符的回显: `stty -echoctl` begin loop do # ... end rescue Interrupt => e puts 'shutting down' end 如果上述操作不起作用,您可以通过设置为false,禁用

我正在用无线电捕捉信号

rescue Interrupt => e
但它总是打印:

^CShutting down!
有没有办法阻止默认的CTRL+C输出:


有什么想法吗?

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

`stty -echoctl`

begin
  loop do
    # ...
  end
rescue Interrupt => e
  puts 'shutting down'
end
如果上述操作不起作用,您可以通过设置为
false
,禁用所有回音:

require 'io/console'

STDIN.echo = false

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

你试图通过捕捉信号来实现什么?忽略该信号是可能的(而且相对容易),但如果您需要受控关机,只是没有消息,则可能会有点困难。看起来其他库正在显示该消息,并且可能希望执行关机。您能否澄清是否是您的代码在写“关机!”-即,您希望该消息,而不是
^C
回显到终端?是的,我的代码会显示“关机”。收到信号时,我的代码会取消当前进程,保存进度,放置“关机”并退出0。完美的第二个建议效果很好。干杯,谢谢!
require 'io/console'

STDIN.echo = false

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