我有一个Ruby脚本(1.8.7),用于设置自己的交互式shell以运行特定命令。 我希望能够在用户按下CTRL + D(mac / linux)时退出。该脚本只是位于循环中并使用Readline来读取用户输入。我知道CTRL + D发送EOF控件字符,但我如何在Ruby中测试呢?它似乎不包含在标准unix信号列表中,因为从技术上来说它不是字符,我猜测线路上的正常字符串比较也不会起作用。
非常感谢任何想法/指示/建议
干杯
答案 0 :(得分:4)
readline(prompt =“”,add_hist = false)
(...)当输入的行为空并且用户输入EOF(在UNIX上按下^ D)时返回nil。
示例:
require "readline"
while buf = Readline.readline("> ", true)
p buf
end
puts "EOF received, exiting"