PS:使用if判斷時,需要在判斷結束處填入"fi",表示if語句塊的結束
例如:
if [ $ACTION = "add"] then ... ...; else ... ...; fi
在整數中比較使用如下
//-eq 等於(equal) if [ "$a" -eq "$b" ] //-ne不等於(no equal) if [ "$a" -ne "$b" ] //-gt大於(greater than) if [ "$a" -gt "$b" ] //-ge大於等於 if [ "$a" -ge "$b" ] //-lt小於(less than) if [ "$a" -lt "$b" ] //-le小於等於 if [ "$a" -le "$b" ] //<小於(在雙括號中使用) (("$a" < "$b")) //<=小於等於(在雙括號中使用) (("$a" <= "$b")) //>大於(在雙括號中使用) (("$a" > "$b")) //>=大於等於(在雙括號中使用) (("$a" >= "$b"))
在字符串比較使用如下
if [ "$a" = "$b" ] *判斷= if [ "$a" != "$b" ] *判斷!= if [[ "$a" < "$b" ]] *判斷< if [ "$a" \< "$b" ] *判斷< 注意"<"使用在[ ]結構中的時候需要被轉義. if [[ "$a" > "$b" ]] *判斷> if ["$a" \> "$b" ] *判斷> 注意">"使用在[ ]結構中的時候需要被轉義.
[]的參數有以下幾種:
-z: 判斷字符串長度為0則為真 -n:判斷字符串長度非0則為真 -o:或 -a:與
-x:可執行
-r:可讀
-w:可寫
參數使用實例
*$0~$6分別指向: * mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0 * $0 $1 $2 $3 $4 $5 $6 * 53 if [ -z "$6" -o "$6" = "NULL" ] ; then *判斷$6長度若為0或等於NULL為真 54 ln -s ${LNPREFIX}arch-$3 asm-$2/arch 55 else 56 ln -s ${LNPREFIX}arch-$6 asm-$2/arch *$6!=0,所以執行else語句, ln -s arch-s3c24x0 asm-arm/arch * ${LNPREFIX}未定義為空,使用軟連接使asm-arm/arch指向arch-s3c24x0 * arch:architecture,CPU架構,作用是設置CPU架構為arch-s3c24x0 架構 57 fi