阻止模块卸载 ibm 负载共享工具上的 exec 命令 运行

Prevent exec command running on module unload ibm load sharing facilty

我有一个 tcl 脚本,它是 IBM 负载共享工具 (lsf) 中的一个模块文件,用于配置一些环境变量并使用 exec 命令启动一个 python 脚本。

当模块正常卸载时,与所有命令相反的是运行,而且exec命令也是正常的运行。我希望 exec 部分仅在 module load 上 运行 而不是 module unload.

这是我到目前为止尝试过的方法

if { !(is-loaded mymodule)} {
    exec .venv/bin/python mypython.py
}

我也试过这个

if { module-info command load } {
    exec .venv/bin/python mypython.py
}

每一个我都会得到一个类似的错误

Module ERROR: invalid bareword "module"
in expression " module-info command [load] ";
should be "$module" or "{module}" or "module(...)" or ...

这两个异常都会抱怨无效的裸词(“是”或“模块”),具体取决于我尝试的片段。我的 snytax 无效吗?

我的语法不正确,最后我能够通过以下方式解决问题:

set is_load_command [module-info command load]

if { $is_load_command == 1 } {
    exec .venv/bin/python mypython.py
}

我有两个问题,正确理解 tcl 中的比较和使用来自被调用函数的 return 值。两者都不像我习惯的那样表现。