如何在不按enter键的情况下,从使用Ruby的终端获取单个键盘字符?

推荐答案

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/2999

#!/usr/bin/ruby

begin
  system("stty raw -echo")
  str = STDIN.getc
ensure
  system("stty -raw echo")
end
p str.chr

(在我的OS X系统上测试,可能无法移植到所有Ruby平台).更多建议,包括Windows,请参见http://www.rubyquiz.com/quiz5.html.

Ruby相关问答推荐

带有虾Ruby 的动态标题

我可以在 Ruby 的 heredoc 中访问变量吗?

如何关闭 Rails 3.1 上的自动样式表/javascript 生成?

有没有办法通过哈希初始化对象?

在 ruby​​ 中访问嵌套哈希的元素

C# ?? Ruby 中的运算符?

如何用 Ruby 覆盖 shell 中的打印行?

Ruby字符串上的扫描和匹配有什么区别

以条件方式构建哈希

YAML 每个缩进多少个空格?

如何在 ruby​​ 中针对正则表达式测试整个字符串?

如何在Ruby中获取终端窗口的宽度

Ruby 设计模式:如何制作可扩展的工厂类?

从字符串中删除所有特殊字符 - ruby

rspec 是否有比 target.should < 6 更具体的东西?

为什么显式返回会对 Proc 产生影响?

如何在 macOS 上卸载 rbenv?

如何计算 Ruby 数组中的重复元素

我更改存储库 URL 后 Capistrano 部署失败

为什么 Ruby setter 需要self .班级内的资格?