Как использовать оператор mod в bash?

Я пробую такую ​​строку:

for i in {1..600}; do wget http://mydomain.com/search/link $i % 5; done;

То, что я пытаюсь получить как вывод, это:

wget http://mydomain.com/search/link0
wget http://mydomain.com/search/link1
wget http://mydomain.com/search/link2
wget http://mydomain.com/search/link3
wget http://mydomain.com/search/link4
wget http://mydomain.com/search/link0

Но то, что я на самом деле получаю, просто:

    wget http://mydomain.com/search/link

Ответ 1

Попробуйте следующее:

 for i in {1..600}; do echo wget http://mydomain.com/search/link$(($i % 5)); done

Синтаксис $(( )) выполняет арифметическую оценку содержимого.

Ответ 2

for i in {1..600}
do
    n=$((i%5))
    wget http://mydomain.com/search/link$n
done

Ответ 3

Вы должны поместить свои математические выражения внутри $(()).

for i in {1..600}; do wget http://mydomain.com/search/link$(($i % 5)); done;

Ответ 4

Это может быть не по теме. Но для цикла wget in for вы можете сделать

curl -O http://mydomain.com/search/link[1-600]