ruby,unix和这里的文件

时间:2011-10-20 14:07:39

标签: ruby unix heredoc

所以我想知道如何在这里处理ruby中的docs,例如,这是我程序中的主循环:

begin
    word = gets
    if word.nil?
        next
    end
    command = word.chomp.to_s
    print word
end until (word.eql? "EOI")

我通过./file <<EOI

来运行它

但是,如果用户更改了用作终止字符串的内容,则最后一行显然会失败。是否有一些全局变量可以让我检测用户指定的终止字符串?如果没有,处理<<EOI的最佳方式是什么?

谢谢你。

示例输入:

hello

world
EOI

1 个答案:

答案 0 :(得分:2)

如果用户发送word.nil?EOF),您在Ctrl-d之前不会循环的原因也是如此?

until (word = gets).nil?
  print word.chomp
end