四、迴圈結構語句
shell常見的迴圈語句有for迴圈、while迴圈、until迴圈
for 迴圈
文法:for 變數 in 列表
do
操作
done
註:變數是要在迴圈內部用來指代當前所指代的列表中的那個對象的。
列表是在for 迴圈的內部要操作的對象,可以是字串也可以是檔案,如果是檔案則為檔案名稱。
例:刪除垃圾箱中的所有.gz檔案
#delete all file with extension of “gz” in the dustbin
for I in $HOME/dustbin/*.gz
do
rm –f $i
echo “$i has been deleted!”
done
執行結果如下:
[beichen@localhost bin]$.f_rmgz
/home/beichen/dustbin/nessus-4.0.0.2.tar.gz has been deleted!
/home/beichen/dustbin/gftp-2.2.1.tar.gz has been deleted!
While迴圈
文法:while 運算式
do
操作
done
只要while運算式成立,do和done之間的操作就一直會進行。
until迴圈
文法:until 運算式
do
操作
done
重複do和done之間的操作直到運算式成立為止。
例:
#test until
#add from 1 to 100
total=0
num=0
until test num –eq 100
do
total=`expr $total + $num` //注意,這裡的引號是反引號,下同
num=`expr $num+1`
done
echo “The result is $total”
執行結果如下:
[beichen@localhost bin]$until
The result is 5050!
五、條件陳述式
Shell程式中的條件陳述式主要有if語句、case語句;
If語句
文法:if 運算式1 then
操作
elif 運算式2 then
操作
elif 運算式3 then
操作
…..
else
操作
fi
Linux裡的if的結束標誌是將if反過來寫成fi;而elif其實是else if的縮寫
其中elif理論上可以有無限多個。
Case語句
文法:case 字串 in
值1|值2)
操作::
值3|值4)
操作::
值5|值6)
操作::
*}
操作::
esac
case的作用就是當字串與某個值相同是就執行那個值後面的操作。如果同一個操作對於多個值,則使用”|”將各個值分開。在case的每一個操作的最後面都有兩個”::”,分號是必須的。
例:
case $USER in
beichen)
Echo “You are beichen!”;;
liangnian)
echo “You are liangnian”; //注意這裡只有一個分號
echo “Welcome!”;; //這裡才是兩個分號
root)
echo “You are root!:echo Welcome!”;; //將兩命令寫在一行,用一個分號作為分隔字元
*)
echo “Who are you?$USER?”;;
esac
執行結果:
[liangnian@localhost bin]$ test
You are liangnian
Welcome!
關於shell編程基礎的東西就介紹這麼多,如果你想更進一步瞭解shell編程的知識,請查閱相關書籍。