У меня есть скрипт, который я хочу выполнить с open4.
Вот файл:
Сценарий
#!/usr/bin/env ruby
print "Enter your username: "
username = gets
puts "Here is your username: #{username}"
print "Enter your password: "
password = gets
puts "Here is your password: #{password}"
Затем я запускаю IRB и набираю:
ruby-1.9.2-p0 > pid, stdin, stdout, stderr = Open4::popen4("./script")
=> [2649, #<IO:fd 9>, #<IO:fd 11>, #<IO:fd 13>]
ruby-1.9.2-p0 > puts stdout.gets
В последней строке я подумал, что это должно дать мне «Введите имя пользователя:», но это не так. Экран пуст независимо от того, что я печатаю. Я могу прекратить его только с помощью CTRL + C.
Тогда я бегу ...
ruby-1.9.2-p0 > puts stdout.gets
... снова, и на этот раз мне выдается «Введите ваше имя пользователя:».
Кто-то знает почему?