Пауза 'для' после каждых 5 циклов - PullRequest
2 голосов
/ 18 января 2020

У меня есть скрипт bash для загрузки 52k файлов:

for i in {1..52000};
do wget -c "download.hebrewbooks.org/downloadhandler.ashx?req=$i" ; 
done

Однако сервер выдает ошибку 429.

Как я могу приостановить l oop на X раз после каждых 5 загруженных файлов?

1 Ответ

4 голосов
/ 19 января 2020

Если i кратно пяти, sleep.

for i in {1..52000}; do
    wget -c "download.hebrewbooks.org/downloadhandler.ashx?req=$i"
    ((i % 5)) || sleep $X
done

Обратите внимание, что ((expr)) возвращает логическое значение expr, где false = 0 и true = 1, что является напротив нормальных Bash кодов возврата. Вот почему вы должны использовать OR || вместо AND &&. Если это слишком запутанно, используйте вместо этого: ((i % 5 == 0)) && ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...