典型场景:程序的实现需要调用第三方的API,但是我们并不能保证第三方API一直好用,也不能保证网络一直畅通,所以在调用第三方API时需要加上错误重试。

通用场景:程序的运行不符合预期,我们知道再次调用大概率可以使之符合预期,这时就需要重试。

#!/bin/bash

# 最大重试次数
MAX_RETRY=5

# 当前重试次数
retry_count=0

# 循环执行命令,如果失败则重试
while true; do
# 执行命令,可以将具体的命令替换为你需要执行的命令
command_result=$(some_command)

# 检查命令的返回值,如果成功则退出循环
if [ $? -eq 0 ]; then
echo "Command succeeded!"
break
fi

# 命令执行失败,检查是否已达到最大重试次数
if [ $retry_count -ge $MAX_RETRY ]; then
echo "Command failed after $MAX_RETRY attempts."
exit 1
fi

# 命令执行失败,增加重试次数,等待一段时间后再次执行命令
echo "Command failed, retrying in 10 seconds..."
retry_count=$((retry_count+1))
sleep 10
done

在上面的脚本中,MAX_RETRY定义了最大重试次数,retry_count用于记录当前重试次数,while循环用于不断执行命令,if语句用于检查命令的返回值,如果成功则退出循环,否则增加重试次数,并等待一段时间后再次执行命令,直到命令成功或达到最大重试次数。如果命令在最大重试次数内执行失败,则脚本退出并返回错误码1。


扫码手机观看或分享: