J'essaye une ligne comme celle-ci:
for i in {1..600}; do wget http://example.com/search/link $i % 5; done;
Ce que j'essaie d'obtenir en sortie, c'est:
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
Mais ce que je reçois en fait, c'est juste:
wget http://example.com/search/link
bash
retours ne renvoie que le reste , et non le résultat modulo mathématique . Cela signifie, que si mathématiquement-12 mod 10
est8
, bash calculera comme-2
. Vous pouvez le tester avec simpleecho $((-12 % 10))
(-2
) et le comparer avecpython3 python3 -c "print(-12 % 10)"
(8
).$(())
augmentera automatiquement les variables afin que vous ne aurez pas besoin$
avec lei
. Cela$((i % 5))
fonctionnera parfaitement bien.la source
Vous devez mettre vos expressions mathématiques dans $ (()).
Bon mot:
Plusieurs lignes:
la source
Cela pourrait être hors sujet. Mais pour la boucle wget in for, vous pouvez certainement le faire
la source