You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash循环条件集成错误判断:实现文件下载遇404时停止

批量下载文件并在遇到404时终止while循环

方法1:下载后检查wget退出码

直接执行下载操作,通过判断wget的退出状态终止循环——wget遇到404错误时会返回退出码8(对应服务器返回错误响应)。

i=1
while true; do
    target_file="file${i}.txt"
    wget "http://your-target-site/${target_file}"
    
    # 检查上一条wget命令的退出码
    if [ $? -eq 8 ]; then
        # 清理可能生成的404错误页面文件
        rm -f "${target_file}"
        break
    fi
    
    i=$((i + 1))
done

方法2:先检查文件存在性再下载

如果不想浪费带宽下载不存在的文件,可以用--spider参数让wget只探测文件是否存在,确认存在后再执行下载:

i=1
# 当spider探测成功(文件存在)时,进入循环体执行下载
while wget --spider "http://your-target-site/file${i}.txt" 2>/dev/null; do
    wget "http://your-target-site/file${i}.txt"
    i=$((i + 1))
done

注意事项

  • 不同版本wget的退出码可能略有差异,可通过man wget查看本地wget的退出码说明,确认404对应的状态值
  • 如果目标网站有反爬机制,可能需要给wget添加--user-agent、--cookie等参数模拟正常请求

内容的提问来源于stack exchange,提问作者IceCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 12:01:04