基本使用
最直觀的 for 語法如下
for name in [in words ...]; do
commands
done
我們可以利用 for 語法做一個遍歷,例如
#!/bin/bash
for i in {1..10}; do
echo $i
done
這樣看起來不是很直觀,因此 shell 還提供一些類似高級語言的寫法
for (( exp1; exp2; exp3 )); do
commands
done
因此上面的腳本可以改寫如下
#!/bin/bash
for (( i = 1; i <= 10; i++ )); do
echo $i
done
遍歷參數
如果省略了 for 結構語法的 in words ...
,那麼表示遍歷腳本參數
#!/bin/bash
for param; do
echo $param
done
相比於用 shift 命令來遍歷參數,for 結構可以保留原來的參數值不變。
小疑問
使用傳統的 for 語法,只能把變量按1遞增嗎?當然不是。如果你這樣認爲,只能說對 shell 的大括號擴展不瞭解。
#!/bin/bash
# 輸出1到10內的奇數
for i in {1..10..2}; do
echo $i
done
{1..10..2}
使用shell的大括號擴展語法,最後的..2
表示以2遞增。