Zapętlaj zakres liczb, aby pobrać za pomocą wget

11

Jak napisać skrypt bash, który wykona następujące czynności:

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

Mam więc kilka pętli do wykonania, adres URL zakończony liczbą z pętli. Potrzebuję do nich wgetwszystkich.

Szymon Toda
źródło

Odpowiedzi:

19

jeśli używasz Bash 4.0, możesz to zrobić:

wget example.com/imageId={1..100}.jpg
CC
źródło
10

Jest to dość łatwe, nawet dla kogoś, kto nie ma dużego doświadczenia w programowaniu. W razie wątpliwości zawsze czytaj instrukcję Bash :

for i in {1..100}
do
    wget "example.com/imageID=$i"
done
Canha
źródło
Zasadniczo powinieneś dołączyć $icytaty:wget "example.com/imageID=$i"
Scott,
to prawdopodobnie działa świetnie. jednak zaczynam od „00008000” i wget strzela błędami, ponieważ dla niektórych reasn pomija pierwsze cztery zera.
esaruoho,
-1

W przypadku, gdy zmienna nie znajduje się na końcu adresu URL, a zmienna znajduje się między znakami podkreślenia:
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
równoważnie:
for ((i=1;i<=100;i++)); do wget example.com/imageID_${i}_2018.gif; done

Vassil
źródło
3
Witamy w Super User. Proszę edytować swoje odpowiedzi, aby zapewnić więcej szczegółów. Nie wszyscy czytający Twój post mogą zrozumieć, w jaki sposób odpowiada on na pytanie PO bez bardziej szczegółowego wyjaśnienia.
Mówię: Przywróć Monikę
1
Nie jestem pewien, to jest odpowiedź. Wygląda jak wyjaśnienie przyjętej odpowiedzi (i niezbyt jasnej).
Scott