Bash脚本在不发送邮件的情况下突破循环

时间:2017-07-07 09:36:03

标签: bash email curl

我在bash中有一个小片段

retries = 3 

for (( i=0; i<retries; i++)); do
    curl -1 --cipher ALL --connect-timeout 90 -T $zip_name ftps://ftp.box.com/Backup/$zip_name --user service.box.kto@crab.com:§fHyFSDF$o6
    [[ $? -eq 0 ]] && break
    echo "something went wrong, let's wait 6 seconds and retry"
    sleep 6
done

[[ $retries -eq i ]] && { echo "This email is a notification of Failure" | mail -s "Failed" "admin.box@text.com"  ; exit 1; }

如果卷曲时出现错误,上面的循环应该重试3次,所以如果出现卷曲错误,它应该邮寄到电子邮件中。但为了测试它我撤销了用户的访问权限,所以我期待一封电子邮件,但这不起作用,我在控制台上收到了以下内容:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:03 --:--:--     0
curl: (9) Server denied you to change to the given directory

如果在上传服务器时撤销访问,为什么代码会在第一次尝试时中断

1 个答案:

答案 0 :(得分:0)

footer{
width:100%;
float:left;
}

你最好不要使用我认为的语法,而且我注意到你没有正确引用重试变量。即使用$ retries而不是重试和$ i而不是i