ruby、unix 和此处文档

发布于 2024-12-10 20:53:03 字数 471 浏览 0 评论 0 原文

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

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

并且我通过执行 ./file <

如果用户更改 来运行它但是,如果使用什么作为终止字符串,那么最后一行显然会失败。是否有一些全局变量可以让我检测用户指定的终止字符串?如果不是,处理 < 的最佳方法是什么?

谢谢你们。

输入示例:

hello

world
EOI

So I'm wondering how to process here docs in ruby, for example, this is the main loop in my program:

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

and I run it by doing ./file <<EOI

If the user changes what's used as the terminating string, however, then the last line will clearly fail. Is there some global variable that lets me detect what the user has specified as a terminating string? If not, what's the best way to handle <<EOI?

Thanks yall.

Sample input:

hello

world
EOI

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

A君 2024-12-17 20:53:03

您为什么不循环直到 word.nil? 如果用户发送 EOF (Ctrl-d )?

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

Any reason why you don't just loop until word.nil? which would also be the case if the user sends EOF (Ctrl-d)?

until (word = gets).nil?
  print word.chomp
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文