как сделать переменную уникальной - PullRequest
1 голос
/ 15 ноября 2010

Как сделать переменную уникальной в TCL?

Пример:

exec echo $msgBody - /tmp/Alert_Notify_Work.$$
exec cat /home/hci/Alert.txt -- /tmp/Alert_Notify_Work.$$

Это не работает; Я пытаюсь сделать переменную Alert_Notify_Work уникальной.

Ответы [ 2 ]

5 голосов
/ 16 ноября 2010

Для этого лучше всего использовать уже существующую библиотеку.Tcllib имеет пакет fileutil, который реализует временные файлы:

set filename [fileutil::tempfile Alert_Notify_Work.]
2 голосов
/ 15 ноября 2010

$$ не является допустимым синтаксисом Tcl, и Tcl проанализирует эту строку до того, как оболочка увидит ее.Но есть команда 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...