Цикл по диапазону номеров для загрузки с помощью wget


11

Как я могу написать скрипт bash, который будет делать следующее:

URL = "example.com/imageID="
while (1..100)
   wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc
done

Итак, у меня есть несколько циклов, URL-адрес которых заканчивается числом из цикла. Мне нужно wgetвсе это.

Ответы:


19

если вы используете Bash 4.0, вы можете сделать это:

wget example.com/imageId={1..100}.jpg

10

Это довольно просто, даже для тех, кто не имеет большого опыта программирования. Если есть сомнения, всегда читайте руководство Bash :

for i in {1..100}
do
    wget "example.com/imageID=$i"
done

В принципе, вы должны заключить $iв кавычки:wget "example.com/imageID=$i"
Скотт

это, вероятно, прекрасно работает. тем не менее, я начинаю с «00008000», и wget выдает ошибки, потому что по некоторым причинам он пропускает первые четыре нуля.
Esaruoho

-1

Если переменная не находится в конце URL, а переменная находится между подчеркиванием:
example.com/imageID_1_2018.gif
example.com/imageID_2_2018.gif
example.com/imageID_3_2018.gif
.
,
,
example.com/imageID_100_2018.gif

wget example.com/imageID_{1..100}_2018.gif
что то же самое:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done


3
Добро пожаловать в Супер пользователя. Пожалуйста, отредактируйте свой ответ, чтобы предоставить более подробную информацию. Не каждый, кто читает ваш пост, может понять, как он отвечает на вопрос ОП, без более подробного объяснения.
Я говорю, восстановите Монику

1
Я не уверен , что это является ответом. Это похоже на объяснение принятого ответа (и не очень ясного).
Скотт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.