2021年1月7日 星期四

Bash 執行 for 1~100 的寫法 (轉貼)

 

Bash 執行 for 1~100 的寫法

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

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

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

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

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

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

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

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

沒有留言:

張貼留言