Estou tentando uma linha como esta:
for i in {1..600}; do wget http://example.com/search/link $i % 5; done;
O que estou tentando obter como saída é:
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
Mas o que realmente estou recebendo é apenas:
wget http://example.com/search/link
bash
retornos somente restante , não modulo matemática resultado. Isso significa que, embora matematicamente-12 mod 10
seja8
, o bash o calculará como-2
. Você pode testá-lo com simpleecho $((-12 % 10))
(-2
) e compará-lo compython3 python3 -c "print(-12 % 10)"
(8
).$(())
expandirá automaticamente as variáveis, assim você não precisará da$
comi
. Isso$((i % 5))
funcionará perfeitamente bem.fonte
Você deve colocar suas expressões matemáticas dentro de $ (()).
Uma linha:
Várias linhas:
fonte
Isso pode estar fora do tópico. Mas para o wget in for loop, você certamente pode fazer
fonte