微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果进程以参数启动,则Ruby readline会失败

我有一个最奇怪的问题.以下代码工作正常:
require 'json'
require 'net/http'
h = Net::HTTP.new("localhost",4567) 
while(l = gets.chomp!)
   res = h.post("/api/v1/service/general",l)
   puts res.body
end

但是,通过从参数获取主机/端口的小修改

require 'json'
require 'net/http'
h = Net::HTTP.new(ARGV[0],ARGV[1]) 
while(l = gets.chomp!)
   res = h.post("/api/v1/service/general",l)
   puts res.body
end

..并从ruby service.rb localhost 4567开始……

我收到此错误

service.rb:4:in `gets': No such file or directory - localhost (Errno::ENOENT)

在Ubuntu 11.04上使用ruby 1.9.2p0

解决方法

你有没有尝试过(l = $stdin.gets.chomp!)?否则Kernel#从ARGV读取.

原文地址:https://www.jb51.cc/ruby/266767.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐