在寫shell指令碼時,常常會用到迴圈語句。這裡簡單總結下常用的3種迴圈語句,以便以後能快速地參考寫出,廢話不說,開始demo:
1、for
主要用於:在以知序列裡遍曆元素
[plain] view plaincopy #! /bin/sh -
if [ $# -ge 1 ]; then path=$@ else path=*.sh fi
for i in $path do ls -lh $i done注意:for迴圈的in列表時可選的,如果省略,shell會遍曆整個命令列參數,此時 for i 相當於 for i in "$@"
再給一個for的用法樣本:
[plain] view plaincopy #! /bin/sh -
for i in `seq 1 9` do echo $i done注意:for in 可以和 `` 與 $() 合用
再給一個for的用法樣本:
[plain] view plaincopy #! /bin/sh -
for i in {a……z} do echo $i done
注意:for in 的大括弧{}具有自動補齊功能,大括弧與要補齊的內容之間不能有空格,要補齊的內容首尾由兩個……相連,其間不能有空格再給個for的用法樣本:
[plain] view plaincopy #! /bin/sh -
for (( i=1; i<=10; i++ ))
do echo $i done提醒:這個主要是用了(())
2、while
主要用於:當某條件成立時,一直執行
[plain] view plaincopy #! /bin/sh -
cnt=9
while [ $cnt -ge 0 ] do echo $((cnt——))
done
注意:1、算術運算,需要放在$(()) 的括弧中
2、對於變數的算術運算,在$(())中,變數前面不需要$
3、unitl
主要用於:當某條件成立時,停止執行
[plain] view plaincopy #! /bin/sh -
cnt=9 until [ $cnt -lt 0 ] do echo $cnt cnt=$((cnt - 1))
done
注意:給變數賦值時,前面不要加$