首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁止在模块卸载ibm load sharing设备上运行exec命令

禁止在模块卸载ibm load sharing设备上运行exec命令
EN

Stack Overflow用户
提问于 2021-10-29 12:56:13
回答 1查看 70关注 0票数 0

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

当模块正常卸载时,与所有命令的运行相反,但exec命令也正常运行。我想让exec部件只在module load上运行,而不是在module unload上运行。

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

代码语言:javascript
复制
if { !(is-loaded mymodule)} {
    exec .venv/bin/python mypython.py
}

我也试过这个

代码语言:javascript
复制
if { module-info command load } {
    exec .venv/bin/python mypython.py
}

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

代码语言:javascript
复制
Module ERROR: invalid bareword "module"
in expression " module-info command [load] ";
should be "$module" or "{module}" or "module(...)" or ...

这两个异常都会根据我尝试的代码片段来抱怨无效的空单词( "is“或"module")。我的snytax是无效的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-29 14:02:06

我的语法是错误的,最终我能够通过以下几点解决这个问题:

代码语言:javascript
复制
set is_load_command [module-info command load]

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

我有两个问题,一是正确理解tcl中的比较,二是使用被调用函数的返回值。这两个人都没有真正表现出我习惯的样子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69769252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档