While循环检查JBoss状态是否关闭,给出错误

While循环检查JBoss状态是否关闭,给出错误

以下代码的目的是检查 JBoss 的状态,while 循环迭代直到 JBoss 状态达到“DOWN”状态。 ` 我有以下脚本,我已将其设置为该环境变量,以便我可以使用它,而不是脚本的实际路径:

$ JBOSS_ROOT=/opt/app/jboss/jboss.sh
脚本
time=1
while  [ $JBOSS_ROOT status | egrep -nq "DOWN"  ]
  do
        echo "JBoss stooping, please wait ......."
        sleep 1m
        if [ $time -gt 6 ]
         then
            echo "Something went wrong.. it's been running more than 5 \
                minutes, please check JBoos server log and deployments"
            exit
        fi

        time=$(expr "$time" + 1)
  done

echo "JBoss stopped"
`
  • $JBOSS_ROOT status如果 JBoss 处于向下(停止位置),则返回“JBoss DOWN”。
  • $JBOSS_ROOT status如果 JBoss 正在运行(启动位置),则返回“JBoss (pid:32627) is RUNNING”。

while 循环抛出错误。说./stop.sh: line 5: [: missing]'`。

答案1

你的格式错了。试试这个:

while  $JBOSS_ROOT status | grep -Enq "DOWN" 
do
    ...
done

这里[ ]不需要(并且不起作用)。这仅用于测试。

相关内容