- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyプログラム中の標準出力を表示しながら取得し)
Rubyプログラム中の標準出力を表示しながら取得する方法
このQ&Aのポイント
- Rubyプログラム中の標準出力を表示しながら取得する方法を知りたいです。
- 現在、Ruby初心者ですが、プログラム中の標準出力を通常の出力も表示しながら取得したいと考えています。
- 標準出力を取得する方法として、capture_stdoutメソッドを見つけましたが、ブロック内の出力結果は取得できません。最終的な出力結果を取得する方法はありますか?
- みんなの回答 (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."
その他の回答 (1)
- tatsu99
- ベストアンサー率52% (391/751)
回答No.1
OSが不明なのですが、linux等のunix系であれば以下のようにします。 ruby あなたのスクリプト名 上記のコマンドを実行すると、実行結果が画面に表示されますが、 表示すると同時に、ファイルに書き込むには tee コマンドを使用します。 ruby あなたのスクリプト名 tee log.txt とすると log.txtに画面に表示された内容とおなじものが書き込まれます。
質問者
お礼
回答有難うございます。 できればプログラム側で行いたいのですが、 何か方法はありますでしょうか?
お礼
回答有難うございます。 勉強になりました。