1

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

任何想法/指针/建议将不胜感激

干杯

4

1 回答 1

4

文档中:

读行(提示 = “”,add_hist = false)

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

例子:

require "readline"
while buf = Readline.readline("> ", true)
  p buf
end
puts "EOF received, exiting"
于 2012-07-02T09:03:22.907 回答