• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyプログラム中の標準出力を表示しながら取得し)

Rubyプログラム中の標準出力を表示しながら取得する方法

このQ&Aのポイント
  • Rubyプログラム中の標準出力を表示しながら取得する方法を知りたいです。
  • 現在、Ruby初心者ですが、プログラム中の標準出力を通常の出力も表示しながら取得したいと考えています。
  • 標準出力を取得する方法として、capture_stdoutメソッドを見つけましたが、ブロック内の出力結果は取得できません。最終的な出力結果を取得する方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

こんな感じで class MySTDOUT < IO def initialize(file) @f = File.open(file,"w") super(1,"w") end def close @f.close super end def write(str) @f.write(str) super end end $stdout=MySTDOUT.new("1234.txt") p [1,2,3,4,5] puts "This is a pen."

okwaver85758
質問者

お礼

回答有難うございます。 勉強になりました。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.1

OSが不明なのですが、linux等のunix系であれば以下のようにします。 ruby あなたのスクリプト名 上記のコマンドを実行すると、実行結果が画面に表示されますが、 表示すると同時に、ファイルに書き込むには tee コマンドを使用します。 ruby あなたのスクリプト名 tee log.txt とすると log.txtに画面に表示された内容とおなじものが書き込まれます。

okwaver85758
質問者

お礼

回答有難うございます。 できればプログラム側で行いたいのですが、 何か方法はありますでしょうか?

関連するQ&A