Döngü snippet'iniz iki nedenden dolayı istediğiniz gibi çalışmadı:
(($i += 5))- Burada $ideğeri değerine genişletilir i. Böylece genişleme ((375 += 5))mantıklı olmayan bir şey olacaktır (başka bir değişmez sayıya değişmez sayı atamaya çalışmak). Bu normalde ((i += 5))( $değişkeni genişletmek için hayır )
- Bu
{375..3500}döngü, döngünün ilk yinelemesinden önce genişletilir. Sayıların listesi olacak 375 376 ... 3499 3500. Döngünün her yinelemesi iiçin, bu numaraların her birine tek tek atanacaktır. Böylece her yinelemenin başlangıcında, ibu listedeki bir sonraki değere yeniden atanır. 1'lik adımlarla geri sayılır. ((i += 5))Etkili bir şey yapmaz - i'ye 5 ekler, ancak sonra yeniden yeniden başlatılır sonraki yineleme.
Sanırım for (( ; ; ))cevabı en çok sevdim , ama düşünmenizi sağlayacak bazı alternatifler:
5'in katları ile uğraştığımız ve {a..b..i}genişleme bas sürüm 3.2.57 (1) 'de (OS X'te) desteklenmediğinden, bunun yerine bu biraz gizli şeyi yapabiliriz:
for i in 375 {38..349}{0,5} 3500; do
echo $i
done
Bu, bash'ın kartezyen bir ürün oluşturmak için nasıl kullanılabileceğini gösterir.
Genel olarak bir for döngüsü, bunu yapmanın en uygun yolu olduğunu düşünüyorum, ancak ilgileniyorsanız, bir while-loop (BASIC'inize biraz daha yakın) programı kullanabilirsiniz:
count=375
while (( count <= 3500 )); do
echo $count
(( count += 5 ))
done