Próbuję takiej linii:
for i in {1..600}; do wget http://example.com/search/link $i % 5; done;
To, co próbuję uzyskać jako wynik, to:
wget http://example.com/search/link0
wget http://example.com/search/link1
wget http://example.com/search/link2
wget http://example.com/search/link3
wget http://example.com/search/link4
wget http://example.com/search/link0
Ale tak naprawdę otrzymuję tylko:
wget http://example.com/search/link
bash
deklaracji Jedyna pozostałość , nie matematyczny modulo wynik. Oznacza to, że chociaż matematycznie-12 mod 10
jest8
, bash obliczy to jako-2
. Możesz to przetestować za pomocą simpleecho $((-12 % 10))
(-2
) i porównać zpython3 python3 -c "print(-12 % 10)"
(8
).$(())
automatycznie rozszerzy zmienne, więc nie będziesz potrzebować$
zi
. To$((i % 5))
zadziała doskonale.źródło
Musisz umieścić swoje wyrażenia matematyczne wewnątrz $ (()).
Jedna linijka:
Wiele linii:
źródło
To może być nie na temat. Ale dla wget w pętli for z pewnością możesz to zrobić
źródło