当来自另一台机器的 运行 时,无法在 TCL 中反映 auto_path 的设置
Not able to reflect the setting of auto_path in TCL when running from another machine
在我的机器上 /usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/ 下安装了 tcllib 并获取了下面的脚本
#!/bin/sh
set ::auto_path [linsert $auto_path 0 /usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/]
set ::env(TCLLIBPATH) "/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/"
set ::env(ITCL_LIBRARY) "/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/itcl3.4.1/"
在
之前
package require Tclx
导出 tcllib 和 itcl 路径的说明,但无法正确设置 auto_path。当我 运行 我的测试时,总是出现以下错误。正在从错误的路径读取 tclIndex。
couldn't open "/usr/lib64/tcl8.5/tclIndex": no such file or directory
while executing
"open [file join $dir tclIndex]"
Tcl 和 shell 处理变量的语法不同。此外,auto_path
只是一个 Tcl 变量 而根本不是 shell 变量。它是根据各种其他事物的内容构建的(包括在编译 Tcl 库期间嵌入的一些值)。其中之一是 TCLLIBPATH
环境变量,它包含一个 Tcl 列表 (即 space 分隔列表)目录放在auto_path
建成时
一旦 Tcl 解释器是 运行,设置 TCLLIBPATH
的值就没有意义了;如果已设置,它已经使用了它。在您的代码中,您不妨直接操作 auto_path
本身。
从 /bin/sh
shell 脚本中,您将 TCLLIBPATH
设置为:
export TCLLIBPATH="/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4"
此外,与 shell 脚本一样, 您需要确保没有在子 shell 中设置环境变量,除非您仅在该子 shell.
的子进程中使用它们
在我的机器上 /usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/ 下安装了 tcllib 并获取了下面的脚本
#!/bin/sh
set ::auto_path [linsert $auto_path 0 /usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/]
set ::env(TCLLIBPATH) "/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/"
set ::env(ITCL_LIBRARY) "/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4/itcl3.4.1/"
在
之前package require Tclx
导出 tcllib 和 itcl 路径的说明,但无法正确设置 auto_path。当我 运行 我的测试时,总是出现以下错误。正在从错误的路径读取 tclIndex。
couldn't open "/usr/lib64/tcl8.5/tclIndex": no such file or directory
while executing
"open [file join $dir tclIndex]"
Tcl 和 shell 处理变量的语法不同。此外,auto_path
只是一个 Tcl 变量 而根本不是 shell 变量。它是根据各种其他事物的内容构建的(包括在编译 Tcl 库期间嵌入的一些值)。其中之一是 TCLLIBPATH
环境变量,它包含一个 Tcl 列表 (即 space 分隔列表)目录放在auto_path
建成时
一旦 Tcl 解释器是 运行,设置 TCLLIBPATH
的值就没有意义了;如果已设置,它已经使用了它。在您的代码中,您不妨直接操作 auto_path
本身。
从 /bin/sh
shell 脚本中,您将 TCLLIBPATH
设置为:
export TCLLIBPATH="/usr/local/tools/Unix/tcl_pkgs/tclx/tclX8.4"
此外,与 shell 脚本一样, 您需要确保没有在子 shell 中设置环境变量,除非您仅在该子 shell.
的子进程中使用它们