以下代码的目的是检查 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
这里[ ]
不需要(并且不起作用)。这仅用于测试。