2014-10-04 61 views
0

试图编写一个Ruby命令行界面。但是,当程序退出时,则会显示消息。Ruby命令行程序出口然后出现消息

这里是我的程序:

require 'open-uri' 
url = ARGV[0] 

if url.nil? 
    abort "no URL provided" 
end 

begin 
    puts open(url) 
rescue => e 
    abort e.message 
end 

我得到以下

> ruby -Ilib bin/command http://iservice.ltn.com.tw/2014/specials/nonukes/news.php?rno=1&type=l&no=998123 
[1] 8642 
[2] 8643 
[2]+ Done     type=l 
> #<StringIO:0x007fdf96ac82f8> 

[1]+ Done     ruby -Ilib bin/command http://iservice.ltn.com.tw/2014/specials/nonukes/news.php?rno=1&type=l&no=998123 

> 

正如你可以看到,一些奇怪的行首先出现,如[1] 8642,然后退出程序。而后一秒钟壳打印出#<StringIO:0x007fdf96ac82f8>,并挂在那里。 然后我必须按Enter才能退出程序。

UPDATE这似乎只发生在一些URL这样的示例中列出的一个。

为什么我的程序退出然后打印结果和挂起?什么是奇怪的日志消息?

回答

0

我想你传递一个URL与查询字符串。

报价你在命令行

+0

为了澄清URL - 在URL中'&单曲正在由壳作为最终发送两个部分片段进在后台新工艺背景操作者解释。引用url可以防止它们被shell解释。 – DGM 2014-10-04 18:49:23

相关问题