“;用于”;循环以获取bash脚本中服务的状态
我有一个bash脚本,它将在其中启动服务并检查服务的状态。但是,当我启动服务时,应用程序将花费15秒时间将服务状态从“否”更改为“是”,并且我的bash脚本将状态返回为“否”,因为它会在我启动服务后立即检查状态。因此,我希望我的bash脚本有一个“for”循环,它应该每1秒检查一次状态,一旦状态为“Yes”就中断for循环,并在15秒后退出“;用于”;循环以获取bash脚本中服务的状态,bash,Bash,我有一个bash脚本,它将在其中启动服务并检查服务的状态。但是,当我启动服务时,应用程序将花费15秒时间将服务状态从“否”更改为“是”,并且我的bash脚本将状态返回为“否”,因为它会在我启动服务后立即检查状态。因此,我希望我的bash脚本有一个“for”循环,它应该每1秒检查一次状态,一旦状态为“Yes”就中断for循环,并在15秒后退出 app_start=`/usr/bin/AppStart.py` app_status=`/usr/bin/AppStatus.py | grep -oPm
app_start=`/usr/bin/AppStart.py`
app_status=`/usr/bin/AppStatus.py | grep -oPm1 "(?<=<Status>)[^<]+"`
if [[ $app_status = "Yes" ]] ; then
echo "Yes"
else
echo "No"
fi
app_start=`/usr/bin/AppStart.py`
app_status=`/usr/bin/AppStatus.py | grep-oPm1“(?让我给你一些伪代码来解决你的问题:
boolean bFinish = false
integer iSeconds = 0
while (NOT(bFinish) AND (iSeconds < 15)) {
bFinish = check_if_app_status_is_Yes(...)
iSeconds = iSeconds + 1
sleep 1
}
boolean bFinish=false
整数等秒=0
而(非(b完成)和(等秒<15)){
bFinish=检查应用程序状态是否为是(…)
等秒=等秒+1
睡眠1
}
供您参考:sleep
是正确的UNIX/Linux命令,用于在
秒内减少执行。那么代码呢?问题出在哪里?学习一个关于bash和shell编程的好介绍,编写这样的循环将是很简单的。记住用-backticks`检查脚本。如果不鼓励使用$(…)
。