N次找不到文件后如何中止wget?

N次找不到文件后如何中止wget?

我尝试从某些网站的几个画廊中抓取图片。我不知道有多少个文件,但我知道文件是连续命名的。所以我使用这样的正则表达式:

wget http://example.org/some_path_to_gallery_x/DSC{0001..9999}.jpg

仍然有可能丢失某些文件,但如果连续丢失超过 10 个或 N 个文件,则图库显然会到达末尾。如何wget在那一刻中止以避免不必要的流量和运行时间,以便我可以切换到另一个画廊路径?

到目前为止,我wget脑子里只有一个 for 循环、一个计数器和退出代码处理。但我在 BASH 方面太弱了。或者可能有一些神奇的wget钥匙?

更新:一个 BASH 脚本。

    #!/bin/bash

    G_PATH=$1
    MAX_MISSING=10
    C_ABORT=$MAX_MISSING

    for i in {0001..9999}
      do
      wget 'http://example.org/'"${G_PATH}"/DSC${i}.jpg 2>/dev/null
      if [ $? -eq 0 ]
      then
        C_ABORT=$MAX_MISSING
      else
        C_ABORT=$((C_ABORT-1))
        if [ $C_ABORT -eq 0 ]
        then
          echo break at DSC$i.jpg
          break
        else
          echo DSC$i.jpg is missing
        fi
      fi
    done

相关内容