1. 程式人生 > 其它 >Shell程式設計之條件語句:if、case語句

Shell程式設計之條件語句:if、case語句

Shell程式設計之條件語句:if、case語句

一、條件測試

1)test命令測試

2)整數值比較

3)檔案測試

4)字串比較

5)邏輯測試

二、if語句

1)單分支結構

2)雙分支結構

3)多分支語句

三、case語句

一、條件測試

Shell環境根據命令執行後的返回狀態值($?) 來判斷是否執行成功。

當返回值為0(真true)時表示成功,返回值為非0值(假false) 時表示失敗或異常。

test命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立($?返回值為0表示條件成立)。

1)test命令測試

測試表達式是否成立,若成立返回值為0,非0值表示條件不成立。

格式1:test 條件表示式

格式2:【 條件表示式 】   #方括號【“或”】與條件表示式之間需要至少一個空格進行分割

例:

2)整數值比較

【 整數1 操作符 整數2 】

常用的測試操作符

-eq 等於(Equal)
-ne 不等於(Not Equal)
-gt 大於(Greater Than)
-lt 小於(Lesser Than)
-le 小於或等於(Lesser or Equal)
-ge 大於或等於(Greater or Equal)

例:

3)檔案測試

【 操作符 檔案或目錄 】

常用的測試操作符

-d 測試是否為目錄(Directory)
-e 測試目錄或檔案是否存在(Exist)
-f 測試是否為檔案(File)
-r 測試當前使用者是否有許可權讀取(Read)
-W 測試當前使用者是否有許可權寫入(Write)
-X 測試當前使用者是否有許可權執行(eXcute)
-L 測試是否為符號連結

例:

-f

-d

-e

-x

4)字串比較

格式1
【 字串1 = 字串2 】
【 字串1!= 字串2 】
格式2
【 -z 字串 】是否空值
【 -n 字串 】#檢查是否有字串存在

常用的測試操作符

= 字串內容相同
字串內容不同,!號表示相反的意思
-z 字串內容為空
-n 字串是否存在

例:

5)邏輯測試

格式1
【 表示式1 】 操作符 【 表示式2 】
格式2
命令1 操作符 命令2

常用的測試操作符

-a或&& 邏輯與,"而且"的意思,前後條件需都成立
-o或|| 邏輯或,"或者"的意思,只需前後條件中一個成立
邏輯否

&&、||操作符能夠正常存在於【【】】條件判斷結構中,但是如果出現在【】結構中的話,會報錯。

例:

||

二、if語句

1)單分支結構

if 條件測試操作

  then 命令序列

fi

例:

驗證

2)雙分支結構

if 條件測試操作

   then 命令序列1
   else  命令序列2

fi

例:

驗證

3)多分支語句

if 條件測試操作1

   then 命令序列1

elif 條件測試操作2

   then 命令序列2

else

   命令序列3

fi

例:

驗證

三、case語句

語法結構

case 變數值 in

模式1)
     命令序列1
     ;;
模式2)
     命令序列2
     ;;
*)
     預設命令序列
esac

例:

驗證