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

问题描述 投票:2回答:1

我正在接受信号

rescue Interrupt => e

但它始终打印:

^CShutting down!

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

^C

有任何想法吗?

ruby signals rescue
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.