防止在模块上运行exec命令卸载ibm负载共享设施



我有一个tcl脚本,它是IBM Load Sharing facility (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 ...

两个异常要么抱怨无效的裸字(要么"is"或"模块"),这取决于我尝试哪个片段。我的snytax无效吗?

我的语法不正确,最后我用下面的命令解决了这个问题:

set is_load_command [module-info command load]
if { $is_load_command == 1 } {
exec .venv/bin/python mypython.py
}

我有两个问题,正确理解tcl中的比较和使用调用函数的返回值。这两个人的行为都不像我习惯的那样。

相关内容

  • 没有找到相关文章

最新更新