You can run system call like this:
`sleep --help`
Or like this
system "sleep --help"
Or
%x{ sleep --help }
In case of system it will print output and return true or nil, other two methods will return output
PS Oh. It is about displaying in real time.
So. You could use something like this:
system("ruby", "-e 100.times{|i| p i; sleep 1}", out: $stdout, err: :out)
To print data in realtime and store it in variable:
output = []
r, io = IO.pipe
fork do
system("ruby", "-e 3.times{|i| p i; sleep 1}", out: io, err: :out)
end
io.close
r.each_line{|l| puts l; output << l.chomp}
#=> 0
#=> 1
#=> 2
p output
#=> ['0', '1', '2']
Or use popen
output = []
IO.popen("ruby -e '3.times{|i| p i; sleep 1}'").each do |line|
p line.chomp
output << line.chomp
end
#=> '0'
#=> '1'
#=> '2'
p output
#=> ['0', '1', '2']