gpt4 book ai didi

ruby - 如何将控制台输出显示到标准输出并将其存储在变量中?

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:36 26 4
gpt4 key购买 nike

如果我这样做:

output = %x{some_script}

...然后我将打印到标准输出的内容存储在 output 中;但我没有看到它出现在屏幕上。

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

success = system "some_script"

...然后我看到输出出现在屏幕上,但我没有将它存储在变量中(success 仅包含一个 bool 值)。

有什么办法可以兼得吗?我知道我可以这样做:

output = %x{some_script}
puts output

但问题是 some_script 可能是一个运行时间相当长的脚本,在这种情况下,我什么都看不到直到整个事情完成。我更愿意在生成时查看输出,并在完成后将其全部存储在 output 变量中。

最佳答案

这是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 - 如何将控制台输出显示到标准输出并将其存储在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7276078/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com