如何读取shell文件中的环境变量

时间:2014-07-12 01:29:56

标签: shell tcl environment-variables

我有一个tcl文件并在该文件中定义我的环境变量。类似下面的内容

set env(ET_PINASSIGN_SCRIPT) $ET_PINASSIGN_SCRIPT 

其中$ET_PINASSIGN_SCRIPT变量将具有用户传入输入值。现在我需要在shell文件中读取这个env变量(#!/bin/ksh )。这就是我正在尝试而不是工作

$env ET_PINASSIGN_SCRIPT .

有什么建议吗? 谢谢

2 个答案:

答案 0 :(得分:1)

我明白这是不可能的。正在运行的程序,例如。您的脚本,接收环境的重复,并可以修改它。但是当程序停止运行时,它会随着环境和变化而消失。

很少有直接的方法可以从死亡过程中进行交流。您可以创建一个临时文件,或从退出代码返回简单的整数。

另一种方式是,以共享相同环境的方式同时运行其他程序,

有关环境的更多信息:

http://en.wikipedia.org/wiki/Environment_variable

编辑:我觉得我不够清楚:我只想指出修改其他程序环境的编程是“极端”(即危险)编程。可以使用各种技巧,这些技巧会对计算机的使用产生持久的影响。

答案 1 :(得分:0)

最简单的方法是让Tcl代码编写一个shell脚本,将变量设置为标准输出(使用puts),然后执行:

eval `tclsh yourscript.tcl`

在你的shell中。


Tcl代码可能类似于:

puts "ET_PINASSIGN_SCRIPT='$ET_PINASSIGN_SCRIPT'"

除了你必须担心任何嵌入的'字符,所以可能会...

puts "ET_PINASSIGN_SCRIPT='[string map {' '\\''} $ET_PINASSIGN_SCRIPT]'"