如何在TCL中将消息回显给文件

时间:2015-06-09 07:05:51

标签: tcl

我试图通过将echo重定向到variable_A.log来记录variable_A值,如下所示:

echo $variable_A >> variable_A.log

但是它不是将值打印到我的日志文件中,而是将“$ varaible_A>> variable_A.log”视为字符串并打印在提示符上。

2 个答案:

答案 0 :(得分:1)

要将值附加到文件,您需要以正确的模式打开文件并使用Set set1, set2; Set newSet = new HashSet(set1); newSet.addAll(set2); 的双参数形式(单参数形式默认为写入puts )。让我们做一个简单的程序:

stdout

现在我们可以轻松使用那个:

proc appendToFile {message >> filename} {
    set f [open $filename "a"];   # The “a” is the key part
    puts $f $message
    close $f
}

在这种情况下,appendToFile $variable_a >> variable_A.log 只是语法糖。除了让你正在做的事情更容易阅读之外,它没有任何价值。 (>>在Tcl中是一个合法但非常奇怪的变量名。)

答案 1 :(得分:0)

效率较低,但很容易理解:

exec echo $message >> filename

交互式 tclsh会话中,由于定义了defalt exec过程的方式,它将在没有unknown的情况下工作。