shell脚本中报错不立即退出设置

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值