1

この質問がここで何度か聞かれていることは知っています。回答を見ましたが、どのように機能するのかわかりませんでした。理解を助けてください。

ここに行きます:

tclsh コマンド ラインで tcl スクリプトを読み込もうとしていますが、そのスクリプトの出力をファイルにリダイレクトしたいと考えています。

$ source my_script.tcl

スクリプトmy_script.tclは次のようなものです。

set output_file final_result
set OUT [open $output_file w]

proc calculate{} { 
    <commands> 
    return $result
}

foreach value [calculate] { 
    puts $output_file "$value"
}

このスクリプトはまだ出力を stdout にスローしますが、出力を「final_result」として指定されたファイルにリダイレクトすることを期待していました。

どこが間違っていたのか理解してもらえますか?

4

2 に答える 2

0

calculate が stdout に書き込まれず、@DonalFellows によって指摘および提案された他のすべての優れた機能が実行されたと仮定します...

メイン スクリプトの puts を次のように変更する必要があります。

puts $OUT "$value"

投稿されたスクリプトは、final_resultほぼ確実に存在しないという名前のチャネルに書き込みます。ループputs内のステートメントからのエラーが予想されます。foreach

出力ファイルを閉じることを忘れないでください - tclsh インタープリターを終了するか、できれば次を実行してください。

close $OUT

内容を確認する前に、

于 2014-12-08T10:07:56.743 に答える