1
如何使變量在TCL中唯一?我如何使變量唯一
實施例:
exec echo $msgBody - /tmp/Alert_Notify_Work.$$
exec cat /home/hci/Alert.txt -- /tmp/Alert_Notify_Work.$$
這不工作;我試圖使變量Alert_Notify_Work
獨一無二。
如何使變量在TCL中唯一?我如何使變量唯一
實施例:
exec echo $msgBody - /tmp/Alert_Notify_Work.$$
exec cat /home/hci/Alert.txt -- /tmp/Alert_Notify_Work.$$
這不工作;我試圖使變量Alert_Notify_Work
獨一無二。
$$
是無效的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
這是最好使用預先存在的庫這一點。 Tcllib具有實現臨時文件一fileutil包:
set filename [fileutil::tempfile Alert_Notify_Work.]
+1:我會用'時鐘clicks',而不是我自己(或在8.6'文件tempfile'),但你認爲什麼樣的作品。 – 2010-11-16 09:49:54
謝謝你的工作正常 – 2010-11-16 16:41:39