小编xit*_*uga的帖子

如何立即打印标准输出?

我该如何立即输出stdoutstdout所有输入完成后将打印.

require 'open3'
def run(cmd)
    Open3.popen3(cmd) do |stdin, stdout, stderr, thread|

    Thread.new do
      stdout.each {|l| puts l}
    end

    Thread.new do
      while thread.alive?
        stdin.puts $stdin.gets
      end
    end

    thread.join
  end
end

run ("ruby file_to_test.rb")
Run Code Online (Sandbox Code Playgroud)

file_to_test.rb:

puts "please, enter s"
puts "please, enter q"

s = gets.chomp!
q = gets.chomp!

puts s
puts q
Run Code Online (Sandbox Code Playgroud)

运行main.rb后的结果是:

somestring
somestring2
please, enter s
please, enter q
somestring
somestring2
Run Code Online (Sandbox Code Playgroud)

我该如何立即输出stdout

ruby io stdin stdout

13
推荐指数
2
解决办法
9633
查看次数

标签 统计

io ×1

ruby ×1

stdin ×1

stdout ×1