setenv
卸载模块时,使用该命令在环境模块中覆盖的环境变量未设置。文档中说可以恢复环境变量,但是没有提供方法。
我尝试使用条件执行,但以下模块 ( ~/privatemodules/test
) 无法恢复环境变量FOO
。
#%Module########################################################################
##
## test modulefile
##
proc ModulesHelp { } {
puts stderr "This module modifies an environment variable FOO."
}
module-whatis "Modify environment varible FOO"
if { [module-info mode load] } {
setenv ORIGINAL_FOO $::env(FOO)
setenv FOO "123"
} elseif { [module-info mode unload] } {
setenv FOO $::env(ORIGINAL_FOO)
unsetenv ORIGINAL_FOO
}
例如我得到:
$ export FOO=bar
$ module load use.own && module load test
$ echo $FOO
123
$ module unload test
$ echo $FOO
$
有没有恢复原值的方法FOO
。