Переведіть цикл на діапазон чисел для завантаження за допомогою 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.