前提・実現したいこと
変数に代入したものをプログラムとして実行させて標準出力をし、aという出力結果を表示したいです。
@test1ではProcに直接内容を書き込むことで、aを出力することができました。
testの内容はテーブルから抽出する予定なので1度変数を挟む必要があると思い、
@test2_preで内容を代入し、その後@test2でProcに変数を渡して実行しました。
しかし、実行結果はprint 'a'となりました。
変数を挟む@test2の場合にaと出力させるにはどのようにすれば良いでしょうか。
該当のソースコード
Ruby
1t1_filename = './test1.txt' # 実行結果ファイル名 2t2_filename = './test2.txt' # 実行結果ファイル名 3 4#実行させたい内容 5@test1 = Proc.new{print 'a'} 6 7@test2_pre = "print 'a'" 8@test2 = Proc.new {@test2_pre} 9 10# 実行結果を test1.txt に出力 11 $stdout = File.open(t1_filename, 'w') 12 puts @test1.call 13 $stdout.close 14 $stdout = STDOUT 15 16# 実行結果を test2.txt に出力 17 $stdout = File.open(t2_filename, 'w') 18 puts @test2.call 19 $stdout.close 20 $stdout = STDOUT 21 22# ファイルの読み込み 23@test1_post = File.read(t1_filename) 24@test2_post = File.read(t2_filename) 25 26#結果の出力 27print "test1の結果:#{@test1_post}" 28print "test2の結果:#{@test2_post}"
実行結果
test1の結果:a
test2の結果:print 'a'
回答2件
あなたの回答
tips
プレビュー