來點非常基本的 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 (換行)