에서 man wget
, 당신은 일반적인 유닉스 리턴 값 규칙을 사용한다는 것을 알 수 있습니다. 0은 에러가 없다는 것을 의미하고, 그 밖의 것은 에러입니다. 다른 종류의 오류 (예 : 네트워크 오류 또는 이와 유사한 문제)가 발생하지 않는다고 가정하면, 즉 파일이 없다는 것을 의미하는 내용을 다운로드하지 않으면 다음과 같이 사용할 수 있습니다.
get_tf_simulated() {
t=$1
if [ $t -lt 3 ]; then
f=$3
s=$((2 * $t))
if [ $f -lt $s ]; then
return 0
fi
fi
return 1
}
get_tf_real() {
tp=$2
fp=$4
inf=$5
ext=$6
# Get http://example.com/test<test number>/<image or file><file number>.<jpg or txt>
wget -Otest$tp_file$fp_$inf.$ext http://example.com/test$tp/$inf$fp.$ext
}
get_tf() {
echo --- Getting $*
get_tf_simulated $*
#get_tf_real $*
}
get_all() {
get_tf $t $tp $f $fp image jpg
ret_val=$?
if [ $ret_val -ne 0 ]; then
return $ret_val
fi
get_tf $t $tp $f $fp file txt
}
for t in {1..999}; do
tp=`printf %3.3d $t`
got_one=no
for f in {1..9999}; do
fp=`printf %4.4d $f`
get_all $t $tp $f $fp
if [ $? -ne 0 ]; then
echo Failed, going next
break
fi
got_one=yes
done
if [ $got_one == 'no' ]; then
echo Nothing more
break
fi
done
에서 오른쪽 줄 주석 처리 제거 get_all
기능. 현재, 그것을 시뮬 레이팅 할 것이고 아웃풋은 이렇게 될 것입니다. mkt.sh
) :
$ ./mkt.sh
--- Getting 1 001 1 0001 image jpg
--- Getting 1 001 1 0001 file txt
--- Getting 1 001 2 0002 image jpg
Failed, going next
--- Getting 2 002 1 0001 image jpg
--- Getting 2 002 1 0001 file txt
--- Getting 2 002 2 0002 image jpg
--- Getting 2 002 2 0002 file txt
--- Getting 2 002 3 0003 image jpg
--- Getting 2 002 3 0003 file txt
--- Getting 2 002 4 0004 image jpg
Failed, going next
--- Getting 3 003 1 0001 image jpg
Failed, going next
Nothing more
노트 나는 테스트하지 않았다. wget
하나,하지만 당신은이 파일을 사용하여 테스트 할 수 있습니다 :
wget -Otest$tp_file$fp_$inf.$ext http://example.com/test$tp/$inf$fp.$ext; echo $?
그냥 바꾸십시오. $tp
, $fp
, $inf
과 $ext
필요에 따라 당신이 준 것과 비슷한 예를 들면 :
wget -Otest052_file0001_file.txt http://www.example.com/sub-somewhere052/file0001.txt; echo $?
이것은 에코해야한다. 8
404에서 man wget
:
8 Server issued an error response.
이것이 작동하면 스크립트가 작동해야합니다. 한 줄에 오타가 없기를 바랍니다. :)