首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Bash for 迴圈自訂遞增步長技巧

     編輯:更多程式設計知識

語法

for (( i = start; i <= end; i += step )); do
    # 迴圈本體
done

實戰範例:每 500 筆批次處理帳號資料

#!/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

關鍵點

  • C 風格 for (( ... )) 支援算術運算式,可直接使用變數 STEP。
  • i += STEP 等同 i = i + STEP,語法簡潔。
  • 迴圈內動態計算 end,並加上邊界保護。

對比:傳統 seq 寫法

# 較舊寫法,需外部指令 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 皆支援)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved