1

我开始编写环境模块。我目前正在编写加载适当环境变量以运行不同版本的程序的模块文件,并且如果加载了可能发生冲突的同一程序的多个模块文件,我希望显示警告。

因此,例如,我有名为 program100、program102、program200、program304 等的模块文件。

到目前为止,在我的代码中它看起来像

#%Module1.0#####################################################################
##

if { [module-info mode load] && [is-loaded program100 program102 program200 program304] } {
        puts stderr "Other modulefile for program is already loaded, modules might conflict"
}

如果可能的话,我想用is-loaded program*与任何以“程序”开头的模块文件匹配的东西替换 is-loaded 命令。

感谢您的任何帮助!

4

1 回答 1

0

您可能会受益于在所有特定于版本的模块文件所在program的公共目录中组织您的模块文件:program

program/100
program/102
program/200
program/304

通过这个组织,您可以通过名称指定所有这些模块文件,program以便您的测试看起来像:

#%Module1.0#######################################################################

if { [module-info mode load] && [is-loaded program] } {
    puts stderr "Other modulefile for program is already loaded, modules might conflict"
}
于 2019-11-28T19:21:50.970 回答