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

前端之家收集整理的这篇文章主要介绍了如果进程以参数启动,则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读取.

猜你在找的Ruby相关文章