如何在bash中使用mod运算符?

我正在尝试像这样的一行:

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 

尝试以下操作:

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

$(( ))语法对内容进行算术评估 。

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

你必须把你的mathexpression式放在$(())里面。

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

这可能是无关紧要的。 但是对于循环中的wget,你当然可以

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