一部のウェブサイトの複数のギャラリーから画像を取得しようとしています。ファイルがいくつあるかはわかりませんが、ファイル名が連続して指定されていることはわかっています。だから私は次の正規表現を使います。
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