2014-10-04 1 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-адрес с строкой запроса.

Quote ваш URL в командной строке

+0

Для уточнения - в 'и' ы в URL интерпретируется оболочка в качестве фона оператора, который заканчивается отправкой два частичных фрагментов в новые процессы в фоновом режиме. Цитирование URL не позволяет интерпретировать оболочку. – DGM