从tcl模块调用bash函数来改变环境

时间:2017-06-30 18:42:02

标签: bash tcl

我有一个bash函数myEnv,它可以加载几个环境,我也使用了几个模块。例如,要设置我的环境,我可能会这样做

#!/usr/bin/env bash
myEnv program1
myEnv program2
module load program3
module load program4

我想在一个模块中处理所有这些问题。遗憾的是,tcl不支持执行myEnv来更改环境。除了重组myEnv的工作方式之外,还有办法从myEnv tcl调用module来处理这个问题吗?

我想写一个模块,比如programs1234,这样我就可以module load programs1234来处理myEnv和两个module load

1 个答案:

答案 0 :(得分:0)

设置全局env变量是否足以设置环境变量?例如:

set env(FOO) "Test variable foo"
set env(BAR) "One more variable"
...
# Execute a tcl program in the env configured above.
exec [info nameofexecutable] -f program3

因此,例如,如果program3打印出env(FOO)和env(BAR),您将看到这些值。

puts $env(FOO)
puts $env(BAR)