我有一个 Ruby 脚本(1.8.7),它设置了自己的交互式 shell 来运行特定的命令。我希望能够在用户按下 CTRL+D (mac/linux) 时退出。该脚本只是处于一个循环中,并使用 Readline 来读取用户输入。我知道 CTRL+D 发送 EOF 控制字符,但我如何在 Ruby 中对此进行测试?它似乎没有包含在标准 unix 信号列表中,并且由于从技术上讲它不是一个字符,我猜在线上的普通字符串比较也不起作用。
任何想法/指针/建议将不胜感激
干杯
从文档中:
读行(提示 = “”,add_hist = false)
(...) 当输入的行为空且用户输入 EOF(在 UNIX 上按 ^D)时,返回 nil。
例子:
require "readline"
while buf = Readline.readline("> ", true)
p buf
end
puts "EOF received, exiting"