Ruby:执行bash命令,同时捕获输出并转储到屏幕

Ruby:执行bash命令,同时捕获输出并转储到屏幕,ruby,bash,capture,Ruby,Bash,Capture,所以我的问题是,我需要将运行命令的输出转储到屏幕上,并将其捕获到ruby脚本中的变量中。我知道我可以这样做第二部分: some_variable = `./some_kickbutt` 但我的问题是,我需要它仍然打印到控制台上,因为Hudson捕获了输出并记录下来,以供后代使用 提前感谢您提供的任何想法…只需将标准输出流设置为stderr,如下所示: ruby -e 'var = `ls | tee /dev/stderr`; puts "\nFROM RUBY\n\n"; puts var'

所以我的问题是,我需要将运行命令的输出转储到屏幕上,并将其捕获到ruby脚本中的变量中。我知道我可以这样做第二部分:

some_variable = `./some_kickbutt`
但我的问题是,我需要它仍然打印到控制台上,因为Hudson捕获了输出并记录下来,以供后代使用


提前感谢您提供的任何想法…

只需将标准输出流设置为stderr,如下所示:

ruby -e 'var = `ls | tee /dev/stderr`; puts "\nFROM RUBY\n\n"; puts var' | nl

ruby -e 'var = `ls | tee /dev/stderr`; puts "\nFROM RUBY\n\n"; puts var' 2>&1 | nl

只需将stdout流tee到stderr,如下所示:

ruby -e 'var = `ls | tee /dev/stderr`; puts "\nFROM RUBY\n\n"; puts var' | nl

ruby -e 'var = `ls | tee /dev/stderr`; puts "\nFROM RUBY\n\n"; puts var' 2>&1 | nl

你为什么给a-1却不解释你的理由。另外,是的,我确实发现这个问题问了很多人,但是没有正确的答案。哇!有人投票关闭了它,因为它在地理上太本地化了!是因为上面提到的“哈德逊”吗?这让我很开心…你为什么要给a-1而不解释你的理由呢。另外,是的,我确实发现这个问题问了很多人,但是没有正确的答案。哇!有人投票关闭了它,因为它在地理上太本地化了!是因为上面提到的“哈德逊”吗?这让我很开心……试过之后,这正是我所需要的。如果可以的话,我会给你两个绿色的复选标记:)在尝试之后,这正是我所需要的。如果可以的话,我给你两个绿色的复选标记:)