我试图编写一个简单的Shell脚本来连续调用(卷曲)API,检索结果,然后执行我的响应。我使用整个循环条件的原因是因为我正在对正在运行的作业进行API调用。我期望的三个响应是“成功”,“失败”或“空”(作业仍在进行中)。在作业失败或成功时执行脚本时,脚本就会起作用。
#!/bin/bash
RESULT=`(curled API response - expecting "FAILURE", "SUCCESS", or null)`
while [ $RESULT ]
do
if [ "$RESULT" == "FAILURE" ]
then
echo "FAILURE in Build"
break
elif [[ "$RESULT" == "SUCCESS" ]]
then
echo "SUCCESS in Build"
break
elif [[ "$RESULT" == *"null"* ]]
then
echo "Waiting for Test/Build to Complete:"
sleep 10
continue
else
echo "NO Response, please check API"
break
fi
done
当API作业正在运行时,我在执行脚本时确实得到了“等待”条件,但是,即使API作业完成了,它也会不断执行等待条件。如果我在单独的命令行中执行脚本,则会得到适当的(成功或失败)条件,但是脚本的现有执行仍在执行等待条件。
基本上,我希望脚本从头开始重试并检查所有条件。我在这里想念什么?
答案 0 :(得分:1)
将RESULT写入循环:
#!/bin/bash
while true
do
RESULT=`(curled API response - expecting "FAILURE", "SUCCESS", or null)`