일부 웹사이트의 여러 갤러리에서 이미지를 가져오려고 합니다. 파일이 몇 개인지는 모르겠지만 파일 이름이 연속적으로 지정되어 있다는 것은 알고 있습니다. 그래서 저는 다음과 같은 정규식을 사용합니다.
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