读取TCL中的Bash环境变量

发布于 2024-10-29 11:41:09 字数 52 浏览 1 评论 0原文

如何读取 Tcl 脚本中的 shell 环境变量。 所以请任何人帮助我。我是TCL的新人。

How to read a shell environment variable in your Tcl script.
So anyone please help me. I am very new in TCL.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小兔几 2024-11-05 11:41:09

使用 $::env 访问任何环境变量,例如访问 TMP 环境变量,请执行以下操作:

set tmpdir $::env(TMP)

更多信息请参见 http://wiki.tcl.tk/1624

Use $::env to access any environment variables e.g. to access the TMP environment variable do this:

set tmpdir $::env(TMP)

More info here http://wiki.tcl.tk/1624

暮凉 2024-11-05 11:41:09
$ export var=42
$ tclsh
% puts $env(var)
42
$ export var=42
$ tclsh
% puts $env(var)
42
没︽人懂的悲伤 2024-11-05 11:41:09

环境变量可通过内置全局变量 env 访问(完全限定为 ::env)。您可以像任何其他 Tcl 数组一样使用它。

如果您想打印所有环境变量的列表,您可以使用如下内容:

proc dump_env_vars {} {
    foreach name [array names ::env] {
        puts "$name == $::env($name)"
    }
}

当然,要仅访问单个变量,您可以像任何其他数组一样使用它,例如:

puts "HOME = '$::env(HOME)'"

有关详细信息,请参阅 Tcler wiki 上的 env 页面tclvars 手册页的 env 部分

Environment variables are accessible via the built-in global variable env (fully qualified it is ::env). You use this like any other Tcl array.

If you want to print a list of all environment variables you can use something like this:

proc dump_env_vars {} {
    foreach name [array names ::env] {
        puts "$name == $::env($name)"
    }
}

Of course, to access just a single variable you use it like any other array, for example:

puts "HOME = '$::env(HOME)'"

For more information see the env page on the Tcler's wiki and the env section of the tclvars man page

帥小哥 2024-11-05 11:41:09

要读取 Tcl 脚本中的 shell 环境变量,请尝试执行以下操作:

global env
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0

这也可以用这种方式表示:

set olddisplay $::env(DISPLAY)
set ::env(DISPLAY) unix:0

并忘记 global

您可以通过执行以下操作来检查变量是否存在:

if {[info exists env(VARNAME)]} {
    # okay, it's there, use it
    set value $env(VARNAME)
} else {
    # the environment var isn't set, use a default
    set value "the default value"
}

这是

To read a shell environment variable in Tcl script, try doing something like this:

global env
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0

This might be expressed as well in this fashion:

set olddisplay $::env(DISPLAY)
set ::env(DISPLAY) unix:0

and forget about global.

You can check to see if the variable exists by doing something like:

if {[info exists env(VARNAME)]} {
    # okay, it's there, use it
    set value $env(VARNAME)
} else {
    # the environment var isn't set, use a default
    set value "the default value"
}

This is source.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文