首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LSF集群作业输出比较

LSF集群作业输出比较
EN

Stack Overflow用户
提问于 2016-02-09 19:07:56
回答 2查看 84关注 0票数 1

我正在使用和LSF计算集群,并试图在我的代码中包含一个循环,使用以下代码使用bjobs -p检查队列何时为空:

代码语言:javascript
复制
s1=$(bjobs -p)
s2="No pending job found"

if [ "$s1" == "$s2" ]; then
    echo "TRUE"
fi

这只是打印bjobs -p的输出,它等于No pending job found,而不是回显TRUE

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 19:21:47

尝试将斯泰尔重定向到stdout:

代码语言:javascript
复制
s1="$(bjobs -p 2>&1)"
票数 2
EN

Stack Overflow用户

发布于 2016-02-09 20:15:56

实际上这里有很多事情可能是错误的。首先,对于这类is语句来说,明智的做法是,如果语句不是真,也给它一个"FALSE“回声,这将确保您不只是有一个if问题,如下所示:

代码语言:javascript
复制
if [ "$s1" == "$s2" ]; then
    echo "TRUE"
else
    echo "FALSE"
fi

您还应该让脚本回显s1的内容。有可能琴弦是不一样的。

他们也可以更微妙地不同,隐藏的性格或鬼鬼祟祟的马车回来。您可以通过运行脚本并使用cat -A进行检查,如下所示:

代码语言:javascript
复制
./script.sh | cat -A

这将显示存储在$s1中的字符串是否实际上是相同的。如果您一个接一个地回显$s1和$s2以进行比较,这将是最好的。

这个隐藏的字符可能导致您的如果评估他们的不同。

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

https://stackoverflow.com/questions/35300237

复制
相关文章

相似问题

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