Shell Script for 迴圈

本篇記錄 Shell Script 的 for 迴圈用法,Shell Script 的 for 迴圈大致上分為兩種寫法,請看以下的兩種 for 迴圈寫法介紹。

Shell Script 的 for 迴圈第 1 種寫法

這邊介紹 Shell Script 的 for 迴圈第 1 種寫法,這邊先簡單示範 Shell Script 跑 5 次 for 迴圈的寫法,

shellscript-for.sh
1
2
3
4
5
#!/bin/bash

for (( i=1; i<=5; i=i+1 )); do
echo "i=${i}"
done

結果輸出如下,

1
2
3
4
5
i=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 迴圈,

shellscript-for-2.sh
1
2
3
4
5
6
#!/bin/bash

NUM=5
for (( i=1; i<=${NUM}; i++ )); do
echo "i=${i}"
done

也可以將 5 變成一個字串變數帶入 for 迴圈,另外一提,do 習慣寫在下一行的話,那 for 迴圈那行最後就不用加上分號,像這樣寫,

shellscript-for-3.sh
1
2
3
4
5
6
7
#!/bin/bash

NUM="5"
for (( i=1; i<=${NUM}; i++ ))
do
echo "i=${i}"
done

這邊就綜合以上學習到的技巧示範一下 Shell Script 加總 sum 的範例,

shellscript-for-4.sh
1
2
3
4
5
6
7
8
9
#!/bin/bash

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

SUM=0
echo "SUM=$SUM"

Shell Script 的 for 迴圈第 2 種寫法

這邊是另外一種 Shell Script 的 for 迴圈寫法,以下使用 seq 指令來產生數字來給 for 迴圈使用,這邊示範用 seq 指令來產生 1~5 的數字,

shellscript-for-5.sh
1
2
3
4
5
#!/bin/bash

for i in $(seq 1 5); do
echo "i=${i}"
done

這個寫法跟上面類似,取而代之的是使用 {1..5} 表示產生 1~5 的數字,bash 版本太舊的話可能不支援這個寫法,

shellscript-for-6.sh
1
2
3
4
5
#!/bin/bash

for i in {1..5}; do
echo "i=${i}"
done

這邊示範改成 apple banana tomato 多個字串,

shellscript-for-7.sh
1
2
3
4
5
#!/bin/bash

for i in apple banana tomato; do
echo "i=${i}"
done

結果輸出如下,

1
2
3
i=apple
i=banana
i=tomato

將 apple banana tomato 放在 LIST 變數裡帶入 for 迴圈的話可以這樣寫,

shellscript-for-8.sh
1
2
3
4
5
6
#!/bin/bash

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 文字檔