for (( i = start; i <= end; i += step )); do
# 迴圈本體
done
#!/bin/bash
# 每次處理 500 筆,總共 29500 筆
STEP=500
TOTAL=29500
for (( i = 1; i <= TOTAL; i += STEP )); do
end=$(( i + STEP - 1 ))
# 避免最後一批超過總數
[ $end -gt $TOTAL ] && end=$TOTAL
echo "處理區間: $i ~ $end"
./sym init:account-data --start-at=$i --end-at=$end
done
for (( ... )) 支援算術運算式,可直接使用變數 STEP。i += STEP 等同 i = i + STEP,語法簡潔。end,並加上邊界保護。# 較舊寫法,需外部指令 seq
for i in $(seq 1 500 29500); do
end=$((i + 499))
[ $end -gt 29500 ] && end=29500
./sym init:account-data --start-at=$i --end-at=$end
done
C 風格 for 迴圈不依賴 seq,效能更好且可攜性較佳(Bash/ksh/zsh 皆支援)。