我正在开发一个 posix 脚本 (Linux),它获取网页、将内容存储在变量中并查找字符串“SUCCESS”。如果找到字符串,则不应执行循环的内容,如果未找到字符串,则应一遍又一遍地执行循环,直到找到为止。我试图让所有 curl 和 grep 的东西都发生在 while 循环的控制语句中,但我不确定这是否可能,到目前为止还没有成功:
while [ -z "site_status=`curl http://www.example.com/index.html | grep -o 'SUCCESS'`" ];
do
if [ `echo "$site_status" | grep -o 'WAIT'` ]; then
sleep 10s
elif [ `echo "$site_status" | grep -o 'RETRY'` ]; then
sleep 10s
else
exit 1
done
我希望脚本尽可能干净,因此我尽量避免创建将网页内容保存在全局变量中的函数,并在 while 循环中使用此变量。
关于如何使上述while循环工作的任何建议?或者可能是更好的清洁解决方案?