set -e 表示有报错即退出, set +e 表示关闭这种设置。 set -e 等价于 set -o errexit , set +e 等价于 set +o errexit 。
如下脚本若不设置set +e,当git clone失败之后将会退出,但是设置之后如果每次都失败则会将计数器跑完3次
例子:
retry_count=3 # 重试标识,flag=0 表示任务正常,flag=1 表示需要进行重试
count=0 #记录重试次数
while [ 0 -eq 0 ]
do
set +e
git clone --depth 1 --branch $gitlabTargetBranch $gitlabSourceRepoSshUrl 2>/dev/null
if [ KaTeX parse error: Expected 'EOF', got '#' at position 23: … ] then #̲执行成功,不重试 …[${count}+1]
if [ ${count} -eq $retry_count ]; then #指定重试次数,重试超过5次即失败
echo “git clone error”
exit 1
fi
echo ‘retry the $count time’
echo “…retry in 2 seconds …”
sleep 2
fi
set -e
done