我应该如何检查Ruby中的EOF

时间:2012-07-02 08:43:48

标签: ruby shell

我有一个Ruby脚本(1.8.7),用于设置自己的交互式shell以运行特定命令。 我希望能够在用户按下CTRL + D(mac / linux)时退出。该脚本只是位于循环中并使用Readline来读取用户输入。我知道CTRL + D发送EOF控件字符,但我如何在Ruby中测试呢?它似乎不包含在标准unix信号列表中,因为从技术上来说它不是字符,我猜测线路上的正常字符串比较也不会起作用。

非常感谢任何想法/指示/建议

干杯

1 个答案:

答案 0 :(得分:4)

来自documentation

  

readline(prompt =“”,add_hist = false)

     

(...)当输入的行为空并且用户输入EOF(在UNIX上按下^ D)时返回nil。

示例:

require "readline"
while buf = Readline.readline("> ", true)
  p buf
end
puts "EOF received, exiting"