我遇到了一种情况,即curl试图间歇性地使我在服务器上获取一些信息,并且不使用实际信息填充生成的文件,而是使用获取的错误填充了该文件,然后移至下一个数据点(在for循环中),因此我决定进行捕获并重试。(使用bash)。但是由于某种原因,它没有执行应有的操作,因此生成的文件为空。以下是我写的内容,如果您有更好/更轻松的方法来解决此问题或在下面看到问题,请继续分享。预先感谢。
for i in `cat master_db_list`
do
curl -sN --negotiate -u foo:bar "${URL}/$i/table" > $table_info/${i}
#Seek error catch
result=`cat $table_info/${i} | grep -i "Error"`
#lowercase comparison, since error can be in any case
echo -e "result is: $result \n" >> $job_log 2>&1
while [[ "${result,,}" =~ error ]]
do
echo "Retrying table list generation for ${i}" >> $job_log 2>&1
curl -sN --negotiate -u foo:bar "${URL}/$i/table" > $table_info/${i}
result=`cat $table_info/${i} | grep -i "Error"`
done
done
答案 0 :(得分:0)
结果是,上面没有什么问题,一些curl调用返回了空值,降低了寻道频率,中间有睡眠,现在一切正常。