环境模块:是否可以加载查找一系列模块文件名?

Environment Modules: can is-loaded look for a range of modulefile-names?

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

例如我的模块文件名为 程序 100、程序 102、程序 200、程序 304 等

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

#%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 命令,如果可能的话,它匹配任何以 'program' 开头的模块文件。

感谢您的帮助!

您可能会受益于将 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"
}