八月 27, 2024
·
编程基础
使用shell脚本实现命令失败后重试
典型场景:程序的实现需要调用第三方的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。
扫码手机观看或分享: