Shell程式設計之條件語句:if、case語句
阿新 • • 發佈:2021-07-16
Shell程式設計之條件語句:if、case語句
一、條件測試
Shell環境根據命令執行後的返回狀態值($?) 來判斷是否執行成功。
當返回值為0(真true)時表示成功,返回值為非0值(假false) 時表示失敗或異常。
test命令,可以對特定條件進行測試,並根據返回值來判斷條件是否成立($?返回值為0表示條件成立)。
測試表達式是否成立,若成立返回值為0,非0值表示條件不成立。
格式1:test 條件表示式 格式2:【 條件表示式 】 #方括號【“或”】與條件表示式之間需要至少一個空格進行分割
例:
【 整數1 操作符 整數2 】
常用的測試操作符
-eq | 等於(Equal) |
-ne | 不等於(Not Equal) |
-gt | 大於(Greater Than) |
-lt | 小於(Lesser Than) |
-le | 小於或等於(Lesser or Equal) |
-ge | 大於或等於(Greater or Equal) |
例:
【 操作符 檔案或目錄 】
常用的測試操作符
-d | 測試是否為目錄(Directory) |
-e | 測試目錄或檔案是否存在(Exist) |
-f | 測試是否為檔案(File) |
-r | 測試當前使用者是否有許可權讀取(Read) |
-W | 測試當前使用者是否有許可權寫入(Write) |
-X | 測試當前使用者是否有許可權執行(eXcute) |
-L | 測試是否為符號連結 |
例:
-f
-d
-e
-x
格式1 【 字串1 = 字串2 】 【 字串1!= 字串2 】 格式2 【 -z 字串 】是否空值
【 -n 字串 】#檢查是否有字串存在
常用的測試操作符
= | 字串內容相同 |
! | 字串內容不同,!號表示相反的意思 |
-z | 字串內容為空 |
-n | 字串是否存在 |
例:
格式1 【 表示式1 】 操作符 【 表示式2 】 格式2 命令1 操作符 命令2
常用的測試操作符
-a或&& | 邏輯與,"而且"的意思,前後條件需都成立 |
-o或|| | 邏輯或,"或者"的意思,只需前後條件中一個成立 |
! | 邏輯否 |
&&、||操作符能夠正常存在於【【】】條件判斷結構中,但是如果出現在【】結構中的話,會報錯。
例:
||
二、if語句
if 條件測試操作 then 命令序列 fi
例:
驗證
if 條件測試操作 then 命令序列1 else 命令序列2 fi
例:
驗證
if 條件測試操作1 then 命令序列1 elif 條件測試操作2 then 命令序列2 else 命令序列3 fi
例:
驗證
三、case語句
語法結構
case 變數值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 預設命令序列 esac
例:
驗證