比较LSF群集bjobs输出

时间:2016-02-09 19:07:57

标签: bash

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

s1=$(bjobs -p)
s2="No pending job found"

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

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

2 个答案:

答案 0 :(得分:2)

尝试将stderr重定向到stdout:

s1="$(bjobs -p 2>&1)"

答案 1 :(得分:1)

实际上,这里可能有许多错误。首先,明智的是这种声明也给它一个其他的地方,它回声" FALSE"如果陈述不正确,这可以确保您不仅仅有if问题,例如:

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

您还应该让脚本回显s1的内容。字符串只是不同的可能性。

他们也可能会有更微妙的不同,隐藏的角色或偷偷摸摸的回车。您可以通过运行脚本并使用cat -A来管理它来检查这一点:

./script.sh | cat -A

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

这个隐藏的角色可能会导致您将其评估为不同。