Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby – 如何将控制台输出显示到stdout并将其存储在变量中?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我这样做:
output = %x{some_script}

…然后我将打印到stdout的东西存储在输出中;但我没有看到它出现在屏幕上.

另一方面,如果我这样做:

success = system "some_script"

…然后我看到输出出现在屏幕上,但我没有将它存储在变量中(成功只保留一个布尔值).

有两种方法可以得到两者吗?我知道我可以这样做:

output = %x{some_script}
puts output

但问题是some_script可能是一个非常长时间运行的脚本,在这种情况下,直到整个事情完成后我才会看到任何内容.我更愿意看到它产生的输出,以及它完成时将它全部存储在输出变量中.

解决方法

这是IO.popen的解决方案:
require 'Stringio'

output = StringIO.new

IO.popen("ls") do |pipe|
  pipe.each do |line|
    output.puts line
    puts line
  end
end

puts output.String # => Outputs the contents of `output` as a String

大佬总结

以上是大佬教程为你收集整理的ruby – 如何将控制台输出显示到stdout并将其存储在变量中?全部内容,希望文章能够帮你解决ruby – 如何将控制台输出显示到stdout并将其存储在变量中?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。