为什么$ env(LANG)即使在TCL中存在env(LANG)时也会抛出错误?

时间:2016-06-02 09:16:01

标签: environment-variables tcl

即使使用env(LANG)存在$env(LANG),也会抛出错误can't read "env(LANG)"

即使我将其用作

,它也不仅仅是$env(LANG)
if ("" ne $env(LANG) ) {}

它仍然会引发错误。

这是代码:

if {[info exists env(LANG)]} { 

    puts "exists" 

} else {

    puts "not found" 

}

puts $env(LANG)

输出:

exists 
ERROR: can't read "env(LANG)": no such variable

您能解释一下为什么会出现这样的错误吗?

2 个答案:

答案 0 :(得分:1)

这里只是一个疯狂的猜测......你从全局或被调用的范围调用puts $ env(LANG)吗?

这应该有效

puts $env(LANG)

这不起作用

proc foo {} {
    puts $env(LANG)
}
foo

但这应该有用

proc foo {} {
    global env
    puts $env(LANG)
}
foo

答案 1 :(得分:0)

方法ONE终端模式

1.打开终端

2.type tclsh

3.然后使用put $ env(LANG)

4.将打印en_US.UTF-8。

[ravi@cell041 ~]$ tclsh
% puts $env(LANG)
en_US.UTF-8
% puts $tcl_version
8.5
%

方法2来自文件

1.创建一个名为environment.tcl

的文件

2.将代码添加到文件

#!/usr/bin/tclsh
 puts $env(LANG)

3.使用tclsh environment.tcl运行此文件,您可以在终端看到输出。

方法3

1.创建一个名为environment.tcl

的文件

2.将代码添加到文件

#!/usr/bin/tclsh


proc test {} {
   global env
   puts $env(LANG)
}

test

3.使用tclsh environment.tcl运行此文件,您可以在终端看到输出。

请输入以下命令检查系统中是否正确安装了tcl。

 puts $tcl_version

如果没有工作,请检查终端中的parray env,看看是否存在LANG键。

% parray env
env(LANG)= en_US.UTF-8