Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > IO.popen


Автор: MystDeim 6.9.2010, 20:00
Не пойму, как сделать такую вещь: нужно поработать с консольной утилитой, то есть отсылаешь ей команду и читаешь ответ, не пойму как реализовать, какой-то ступор. Для примера взял irb

Беру такой код: 
Код

IO.popen("irb", "r+") do |pipe|
  2.times {puts pipe.gets} #Удаляю лишнее при старте
  pipe.puts "10**6"
  puts pipe.gets #Ожидаю получить 100000
  pipe.puts "quit" 
end


После запуска вывод:
Код

Switch to inspect mode.


И скрипт продолжает висеть

Автор: source777 7.9.2010, 22:10
Цитата(MystDeim @  6.9.2010,  20:00 Найти цитируемый пост)
И скрипт продолжает висеть

Так логично предположить, что запущенный irb ждёт ввода двух строк, чтобы отработало "2.times {puts pipe.gets}", вот и висит...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)