>>>>> "jweirich" == jweirich <jweirich / one.net> writes:
jweirich> I want to start a process and feed it information
jweirich> through its standard input and read the result from its
jweirich> standard output. The "popen" command seems to do one or
jweirich> the other, but not both at once. It there a way to do
jweirich> this? (Currently I'm using a work-around using a
jweirich> temporary file).
Use:
require "open3"
childin, childout, childerr = Open3::popen3(cmd)
Child is reading from 'childin', writing to 'childout' and 'childerr'
jweirich> In a similar vein, is there an "expect"-like addon for
jweirich> Ruby?
You could use the Net::Telnet library.
Use:
require "net/telnet"
conn = Net::Telnet.new "Host" => "localhost"
conn.login "guest", "guest"
:
Read the documentation in the file: .../ruby/1.6/net/telnet.rb. Is not
so fine like expect, but useable for most of the things.
Alternatively you could try to use the 'expect.rb' with the 'childout'
or whatever above. Simply
require "expect"
and from now an every IO instance has a method 'expect'.
HTH,
\cle