ruby - 如何将 Ruby 程序的输出重定向到某个文件

标签 ruby

我有以下代码:

puts "amit"
puts "ravi"

输出:

amit
ravi

我想将 amit 重定向到一个文件,将 ravi 重定向到另一个文件。

假设我的文件名是name.rb。当我尝试像

system("name.rb > #{@filename}")

amitravi 都被重定向到@filename,但我想重定向到另一个文件,或者首先它将重定向到两个同名文件,但在一个文件输出中是 amit 并且在相同输出的其他文件中是 ravi

最佳答案

您可以更改 $stdout 和 $stderr 的目的地:

stout = File.open(ARGV[0], 'w')
sterr = File.open(ARGV[1], 'w')

$stdout.reopen(stout)
$stderr.reopen(sterr)

puts "something"
$stderr.puts "something another"

关于ruby - 如何将 Ruby 程序的输出重定向到某个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3186495/

相关文章:

ruby - 如何使用更少的内存生成数组排列?

ruby-on-rails - 如何减少 Ruby 中的长 if 条件?

ruby-on-rails - Rails 3. 如何从查询结果中删除重复的关联记录?

ruby - 这段 Ruby 代码是如何工作的? (哈希)(Learnrubythehardway)

ruby-on-rails - 部分未显示在 View 中

ruby-on-rails - 如何在 linux 中运行现有的 ruby​​ on rails 项目

mysql - 如何将数组插入数据库表?

html - 错误的 URI Ruby on Rails : is it because long?

ruby-on-rails - 在 Rails 中识别记录/对象是否脏

ruby - 使用 activeadmin 未初始化的常量 Devise (NameError)