/*********************************************************************
* Author : Samson
* Date : 08/01/2013
* *******************************************************************/
bash shell指令碼編程學習總結:
變數:
(1)環境變數:能夠進行修改;
(2)內部變數:系統提供,不能修改;
$#:得到參數個數
$?:shell程式內部執行shell的傳回值
$0:shell程式的名稱
$1~$9:參數1~9的值
$*:全部參數組成的字串
(3)使用者變數:寫shell時使用者編寫定義的;
注意:使用者變數在shell定義時:在賦值號前後不能有空格;如:var1="test1"
shell指令碼的的幾種執行:
(1)shell解譯器 shellscriptname.sh,此種情況下shellscriptname.sh不用加X執行許可權;
(2)直接在shell script的目錄下執行:./shellscriptname.sh,此種執行方法的前提是此shellscriptname.sh檔案具有x執行許可權;
運算式比較:
命令文法如下:
test expression
or
[ expression ]
test命令支援下面4種類型的比較:
(1)字串的比較的expression中的操作符:
= 是否相等
!= 是否不相等
-n 字串長度是否大於0
-Z 字串是否等於0或空
(2)數字比較expression中的操作符:
-eq 是否相等
-ge 是否>=
-le 是否<=
-ne 是否不等於
-gt 是否大於
-lt 是否小於
(3)檔案操作符expression中的操作符:
-d 檔案是否為目錄
-f 檔案是否為普通檔案
-r 檔案是否設定了讀許可權
-s 檔案的長度是否大於0
-w 檔案是否具有寫入權限
-x 檔案是否具有執行許可權
-e 檔案是否存在
(4)邏輯操作符expression中的操作符:
! 對一個邏輯運算式求反
-a 對兩個邏輯運算式執行與操作 AND
-o 對兩個邏輯運算式執行或操作 OR
判斷語句:
if [ expression ]; then
statements
elif [ expression ]; then
statements
else
statements
fi
分支語句:
case $varname in
str1|str2)
statements;;
str3|str4)
statements;;
*)
statements;;
esac
迴圈語句:
(1)
for curvar in list
do
statements
done
(2)
while expression
do
statements
done
until expression
do
statements
done
break語句:可終止一個重複執行的迴圈
exit語句:退出一個shell程式
函數:
func()
{
statements
}
調用:func param1,param2,param3
在一個shell指令碼程式中載入另一個shell程式:. card_error.sh