一定有一些你没有向我们展示的东西:
$ export TEST_ENV_VAR=Test
$ tclsh
% puts $env(TEST_ENV_VAR)
Test
% puts "$env(TEST_ENV_VAR) is in TEST_ENV_VAR"
Test is in TEST_ENV_VAR
请注意,这env是一个全局变量,因此如果您在过程中使用它,则必须将其声明为global
$ tclsh
% proc show_env1 {varname} {
puts "does not work: $env($varname)"
}
% show_env1 TEST_ENV_VAR
can't read "env(TEST_ENV_VAR)": no such variable
% proc show_env2 {varname} {
global env
puts "works: $env($varname)"
}
% show_env2 TEST_ENV_VAR
works: Test
% proc show_env3 {varname} {
puts "also works: $::env($varname)"
}
% show_env3 TEST_ENV_VAR
also works: Test