本篇記錄 Shell Script 的 for 迴圈用法,Shell Script 的 for 迴圈大致上分為兩種寫法,請看以下的兩種 for 迴圈寫法介紹。
Shell Script 的 for 迴圈第 1 種寫法
這邊介紹 Shell Script 的 for 迴圈第 1 種寫法,這邊先簡單示範 Shell Script 跑 5 次 for 迴圈的寫法,1
2
3
4
5
for (( i=1; i<=5; i=i+1 )); do
echo "i=${i}"
done
結果輸出如下,1
2
3
4
5i=1
i=2
i=3
i=4
i=5
Shell Script 的 for 迴圈裡的 i=i+1
也可以寫成 i++
,像 for (( i=1; i<=5; i++ )); do
這樣。
Shell Script 也可以將 5 變成一個變數帶入 for 迴圈,1
2
3
4
5
6
NUM=5
for (( i=1; i<=${NUM}; i++ )); do
echo "i=${i}"
done
也可以將 5 變成一個字串變數帶入 for 迴圈,另外一提,do 習慣寫在下一行的話,那 for 迴圈那行最後就不用加上分號,像這樣寫,1
2
3
4
5
6
7
NUM="5"
for (( i=1; i<=${NUM}; i++ ))
do
echo "i=${i}"
done
這邊就綜合以上學習到的技巧示範一下 Shell Script 加總 sum 的範例,1
2
3
4
5
6
7
8
9
SUM=0
NUM=5
for (( i=1; i<=${NUM}; i++ )); do
SUM=$(( ${SUM} + ${i} ))
done
echo "SUM=${SUM}"
結果輸出如下,1
SUM=15
Shell Script 在 ""
雙引號裡取變數也可以不使用大括號,例如下面這樣寫,1
2
3
4
SUM=0
echo "SUM=$SUM"
Shell Script 的 for 迴圈第 2 種寫法
這邊是另外一種 Shell Script 的 for 迴圈寫法,以下使用 seq 指令來產生數字來給 for 迴圈使用,這邊示範用 seq 指令來產生 1~5 的數字,1
2
3
4
5
for i in $(seq 1 5); do
echo "i=${i}"
done
這個寫法跟上面類似,取而代之的是使用 {1..5}
表示產生 1~5 的數字,bash 版本太舊的話可能不支援這個寫法,1
2
3
4
5
for i in {1..5}; do
echo "i=${i}"
done
這邊示範改成 apple banana tomato 多個字串,1
2
3
4
5
for i in apple banana tomato; do
echo "i=${i}"
done
結果輸出如下,1
2
3i=apple
i=banana
i=tomato
將 apple banana tomato 放在 LIST 變數裡帶入 for 迴圈的話可以這樣寫,1
2
3
4
5
6
LIST="apple banana tomato"
for i in ${LIST}; do
echo "i=${i}"
done
結果輸出同上。
下一篇介紹 while 迴圈
其它相關文章推薦
Shell Script 新手入門教學
Shell Script 四則運算,變數相加、相減、相乘、相除
Shell Script if 條件判斷
Shell Script while 迴圈
Shell Script 讀檔,讀取 txt 文字檔