在bash脚本中重复curl命令以获取特定输出

时间:2013-10-21 13:07:08

标签: linux bash curl

我正在使用openphoto从bash脚本中上传照片。有时上传失败,但所有命令都正确执行。 json结果提供:

{
"message" : "oauth_problem=signature_invalid&debug_sbs=POST&http...,
"code" : 403,
"result" : null
}

上传失败,因为正在上传的照片位于远程服务器上,有时无法在上传到openphoto之前正确缓存文件。通常只需重复命令即可正确执行。

我的bash循环如下所示:

while read i; 
do ./openphoto -p -X POST -h HOSTNAME -e /photo/upload.json \
-F"photo=@$i" \
-F"tags=$(echo "$i"|cut -d'/' -f 7-|sed 's/\/[^/]*[jJ][pP][gG]//;s/\//,/g')"; 
done < files;

如果输出包含&#34;代码&#34;如何让bash重复命令? 403?

1 个答案:

答案 0 :(得分:0)

  

如果输出包含a,如何让bash重复命令   403的“代码”?

您可以在done之前添加一行:

(( $? == 403 )) && command_to_execute

或者,如果您想尝试该命令直到成功,您可以说:

until (( $? == 0 )); do command_to_execute; done