Tcl内置的source命令不会逐条显示正在执行的命令,这对于阅读log文件有些不方便。
有些工具的Tcl扩展支持source -verbose的用法。自己写了一个Tcl的实现,代码如下
proc source-verbose {file} {
set fp [open $file r]
puts "#ref: $file\n"
set buffer ""
while {[gets $fp line]>=0 } {
append buffer $line "\n"
if [info complete $buffer] {
set buffer [string trim $buffer]
if {[string length $buffer] == 0} {
# skip
} else {
puts -nonewline $buffer ; puts " ;#--tcl--#"
uplevel 1 $buffer
}
set buffer ""
}
}
close $fp
}