zxpd() { ' 创建计数器并初始化为0 local zxpdml="$"" local jsq=0 local error_file=$(mktemp)

' 循环执行指令,最多重试3次
while [ $jsq -lt 4 ]; do
    ' 执行指令并隐藏报错信息
    $zxpdml 2>"${error_file}"
    if [ $? -eq 0 ]; then
        ' 如果执行成功,则跳出循环
        echo 0 > /gancm/log/install.log
        break
    else
        ' 如果执行失败,则重试
        let jsq++
        if [ $jsq -ge 4 ]; then
            ' 如果重试次数超过3次,则输出异常信息并跳出循环
            echo 1 > /gancm/log/install.log
            echo -e "${RED}

指令执行异常${RES}" if [ -s "$error_file" ]; then echo -e "${RED}运行日志(请把这一段输出提交给作者)${RES}:" cat "$error_file" fi rm -rf "$error_file" break fi ' 输出重试信息 echo -e "${RED}指令执行错误,重新执行指令:${YELLOW}${zxpdml} ${RED}第${YELLOW}${jsq}${RED}次${RES}" fi done

' 如果计数器小于0,则输出指令执行错误
if [ $jsq -lt 0 ]; then
    echo 2 > /gancm/log/install.log
    echo "${RED}指令执行错误${RES}"
fi

}

Shell 脚本优化:带错误重试机制的函数代码示例

原文地址: http://www.cveoy.top/t/topic/oQeX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录