【发布时间】:2021-05-11 16:58:26
【问题描述】:
TCL 脚本
set ::env(foo) "bar"
bash 脚本
echo ${env(foo)}
echo $foo
我可以在 TCL 脚本中打印环境变量,但由于某种原因,我无法在我的 bash 脚本中打印环境变量。我做错了什么?
【问题讨论】:
-
这两个脚本有什么关系?
-
如果
foo在你的shell 环境中,它就是echo "$foo"。在启动时,shell 只是为环境中的每个名称定义一个常规的 shell 变量,形成一个有效的 shell 标识符。 -
跟进 Shawn 的评论:如果您从 shell 调用 Tcl 脚本,并且您希望 env var 出现在您的 shell 中,则它不会发生 - 不允许子进程改变其父母的环境。