Estoy intentando una línea como esta:
for i in {1..600}; do wget http://example.com/search/link $i % 5; done;
Lo que intento obtener como salida es:
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
Pero lo que realmente estoy obteniendo es solo:
wget http://example.com/search/link
bash
retornos solo devuelve el resto , no el resultado del módulo matemático . Esto significa que, aunque matemáticamente-12 mod 10
es8
, bash lo calculará como-2
. Puede probarlo con simpleecho $((-12 % 10))
(-2
) y compararlo conpython3 python3 -c "print(-12 % 10)"
(8
).$(())
expandirá automáticamente las variables, por lo que no necesitará la$
coni
. Esto$((i % 5))
funcionará perfectamente bien.fuente
Debe poner sus expresiones matemáticas dentro de $ (()).
Un trazador de líneas:
Múltiples lineas:
fuente
Esto podría estar fuera de tema. Pero para wget in for loop, ciertamente puedes hacer
fuente