我试图创建一个TCL PROC,这是通过一个shell命令作为参数,然后打开一个临时文件,写入一个格式化字符串到临时文件,然后运行在后台的shell命令和存储输出到临时文件为好。
在后台运行的命令,是为了让PROC可随即与传递给它的另一个ARG调用,写入到另一个文件。 所以运行一百年这样的命令不应该采取只要运行它们串联会做。 多个临时文件终于可以连接成一个文件。
这是我想要做的伪代码。
proc runthis { args }
{
set date_str [ exec date {+%Y%m%d-%H%M%S} ]
set tempFile ${date_str}.txt
set output [ open $tempFile a+ ]
set command [concat exec $args]
puts $output "### Running $args ... ###"
<< Run the command in background and store output to tempFile >>
}
但我怎么确保任务的background'ing做得好? 需要做,以确保多个临时文件得到正确关闭怎么办?
任何帮助将受到欢迎。 我在TCL新发现让我的脑海里解决这个问题。 我读了关于TCL使用线程,但我用的是旧版本的TCL不支持线程工作。