如何在TCL中使变量唯一?
示例:
exec echo $msgBody - /tmp/Alert_Notify_Work.$$
exec cat /home/hci/Alert.txt -- /tmp/Alert_Notify_Work.$$
这不起作用;我试图使变量Alert_Notify_Work
唯一。
答案 0 :(得分:5)
最好使用预先存在的库。 Tcllib有一个实现临时文件的fileutil包:
set filename [fileutil::tempfile Alert_Notify_Work.]
答案 1 :(得分:2)
$$
是无效的Tcl语法,Tcl会在shell看到之前解析该行。但是有一个Tcl命令来检索pid:pid
。我通常依靠当前时间和pid来获得独特性。
我认为msgBody
是一个Tcl变量,命令中的-
和--
应分别为>
和>>
。
选项1
set filename /tmp/Alert_Notify_Work.[clock seconds].[pid]
exec echo $msgBody > $filename
exec cat /home/hci/Alert.txt >> $filename
或者,Tcl只有几行:
set f_out [open /tmp/Alert_Notify_Work.[clock seconds].[pid] w]
puts $f_out $msgBody
set f_in [open /home/hci/Alert.txt r]
fcopy $f_in $f_out
close $f_in
close $f_out