Пытается написать интерфейс командной строки 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 такое один указанный в примере.
Почему моя программа завершает печать результата и зависает? Каковы странные сообщения журнала?
Для уточнения - в 'и' ы в URL интерпретируется оболочка в качестве фона оператора, который заканчивается отправкой два частичных фрагментов в новые процессы в фоновом режиме. Цитирование URL не позволяет интерпретировать оболочку. – DGM