更新 tcl 脚本的 $auto_path,在其中包含一个变量

update $auto_path of tcl script,include a variable in it

我是 tcl 脚本的新手。

lappend 可以在 $auto_path.

添加路径

但如果我想更新 auto_path,或删除旧路径,然后向 $auto_path 添加新路径,哪个命令可以做到?

还有一个问题, 我想在 $auto_path.

中包含一个变量

喜欢

%puts $auto_path
%/usr/local/lib/tcl8.5 /usr/local/lib $(PROJECT_HOME)/tools/lib

$(PROJECT_HOME) 将在项目构建之前设置。

如何设置?

一般来说,使用 lappend 等列表命令将 auto_path 的值视为 Tcl 列表。至于你的具体问题:

I want to include a variable in $auto_path.

在您的 Tcl 脚本的序言中,您需要访问此环境变量(请参阅 tclvars)并将其附加到列表中:

if {[info exists ::env(PROJECT_HOME)]} {
   lappend auto_path $::env(PROJECT_HOME)
}

or delete an old path,then add a new path

考虑使用 lset:

% lappend auto_path /path/to/your/tools/lib
/opt/local/lib/tcl8.6 /opt/local/lib /path/to/your/tools/lib
% lset auto_path end /another/path/to/your/tools/lib
/opt/local/lib/tcl8.6 /opt/local/lib /another/path/to/your/tools/lib