Bash 執行 for 1~100 的寫法

來點非常基本的 Bash, 但是也有點複雜, Shell script 要寫 for 1~100 的方式太多種了, 要帶入變數、相隔差1、2 寫法都有些微不同, 但是這些微不同造就能不能正常執行~

在此將這些寫法做個記錄~ 方便以後查詢~

Bash 執行 for 1~100 的寫法

最開始只是要對程式跑100次, 做個時間測試而已, 例如下述:

for i in {1..100};
do
    time curl -o /dev/null https://blog.longwin.com.tw;
done
# 跑100次, 印出時間

後來想要將變數代入後, 發現一連串的事情.

註: {1..100}, 使用 {1..$END} 無法執行. (需搭配 seq 或者 for 換寫法)

下述就不解釋了~ 直接看程式和結果即可.

for i in {1..5};
do
    echo $i;
done
# 印出 1 2 3 4 5 (換行)

要將 {1..5} 的 5 用變數帶入, 就會需要搭配 seq
seq 1 5 # 印出 1 2 3 4 5

END=5
for i in $(seq 1 $END);
do
    echo $i;
done
# 印出 1 2 3 4 5 (換行)
# 或者 for 寫法換掉
BEGIN=1
END=5
for ((i=$BEGIN; i<=$END; i++))
do
    echo -n "$i "
done
# 用空隔分隔, 印出 1 2 3 4 5
for i in {0..10..2}
do
    echo $i
done
# 印出 0 2 4 6 8 10 (換行)
for i in $(seq 1 2 10);
do
    echo $i;
done
# 印出 1 3 5 7 9 (換行)

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料