【发布时间】:2026-02-24 21:45:01
【问题描述】:
当我获取 .cshrc 文件并运行 Tcl 脚本时,它工作正常:
$ source .cshrc-sample
$ tclsh invoke.tcl
以下是.cshrc 文件:
setenv AUTOTEST "/auto/isbutest/frt"
setenv ATS_EASY "$AUTOTEST"
setenv ATS_USER_PATH "$AUTOTEST"
setenv PATH "${AUTOTEST}/bin:${PATH}"
但是当我尝试在 Tcl 本身中设置环境变量并运行脚本时, 我收到以下错误:
$ tclsh invoke.tcl
can't find package ha
while executing
"package require ha"
(file "invoke.tcl" line 8)
我的 Tcl 脚本 - invoke.tcl:
global env
set env(AUTOTEST) "/auto/isbutest/frt"
set env(ATS_EASY) "/auto/isbutest/frt"
set env(ATS_USER_PATH) "/auto/isbutest/frt"
set env(PATH) "$env(PATH):/auto/isbutest/frt/bin:";
package require ha
如何在不获取 .cshrc 的情况下运行脚本?
问题是使用脚本无法设置环境变量,变量的生命周期在脚本的运行时内。当我尝试打印 PATH 变量时,它显示了需要什么,但我不知道为什么它不起作用。有没有其他解决方法?
【问题讨论】:
标签: shell environment-variables tcl