您可以使用timeout标准库
require "timeout"
puts "How are you?"
begin
Timeout::timeout 5 do
ans = gets.chomp
end
rescue Timeout::Error
ans = nil
end
puts (ans || "User did not respond")
Run Code Online (Sandbox Code Playgroud)
阅读有关该库的更多信息http://www.ruby-doc.org/stdlib-2.1.5/libdoc/timeout/rdoc/Timeout.html