我正在使用和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
答案 0 :(得分:2)
尝试将stderr重定向到stdout:
s1="$(bjobs -p 2>&1)"
答案 1 :(得分:1)
if [ "$s1" == "$s2" ]; then
echo "TRUE"
else
echo "FALSE"
fi
您还应该让脚本回显s1的内容。字符串只是不同的可能性。
他们也可能会有更微妙的不同,隐藏的角色或偷偷摸摸的回车。您可以通过运行脚本并使用cat -A来管理它来检查这一点:
./script.sh | cat -A
这将显示存储在$ s1中的字符串是否实际上是相同的。如果你一个接一个地回显$ s1和$ s2进行比较,这将最有效。
这个隐藏的角色可能会导致您将其评估为不同。