可能重复:
从显示和捕获输出的 Ruby 运行命令
我必须在我的本地服务器上执行一个程序,并在一个变量中获取控制台的输出
output = `echo "hello"`
puts output # => hello
$ irb
1.9.3p125 :001 > cal = %x[/usr/bin/cal]
1.9.3p125 :002 > puts cal
June 2012
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
您可以使用 IO 重新打开重定向输出。
$stdout.reopen("stdout.txt", "w")
$stderr.reopen("stderr.txt", "w")
puts 'stdout redirect'
warn 'stderr redirect'