День добрый,Странная проблема. Судите сами...
Иначально: Система FreeBSD 4.9. Из портов поставлен TCL8.3 и
библиотека Sqlite 2.8.3 c tcl wrappers.
Пришется скрипт для учета времени работы клиентов в интернете.
Исходный текст (err.tcl):
#!/usr/local/bin/tclsh8.4
package require sqlite;
set namedb "/usr/local/Bscript/session.db";
set IFNAME [lindex $argv 0]; # Intarface name
set AUTHNAME [lindex $argv 1]; # Authname
set STARTTIME [clock seconds]; # Current time
sqlite sesdb $namedb;
sesdb eval {INSERT INTO sestbl (authname, starttime, stoptime, ifname, traffic) VALUES ( $AUTHNAME, $STARTTIME , $STARTTIME, $IFNAME, 0)};
sesdb close;
При запуске скрипта:
$./err.tcl ccc vvv
Получаем следующее:
unrecognized token: "$"
while executing
"sesdb eval {INSERT INTO sestbl (authname, starttime, stoptime, ifname, traffic) VALUES ( $AUTHNAME, $STARTTIME , $STARTTIME, $IFNAME, 0)}"
(file "./err.tcl" line 12)
Такое очущение что tcl в конкретном случае отказывается подменять переменные значениями. Причем если вставить строку:
puts "sesdb eval {INSERT INTO sestbl (authname, starttime, stoptime, ifname, traffic) VALUES ( $AUTHNAME, $STARTTIME , $STARTTIME, $IFNAME, 0)}"
подмена в этой строке происходит нормально.
Установка TCL8.4 проблемы не решила.
Причем под Windows на AS TCL 8.4 и sqlite3 эти же скрипты работают нормально и подобных проблем не возникает.
Есть ли какие-либо идеи?
С уважением,