shell指令碼—條件測試、if語句
阿新 • • 發佈:2021-07-12
目錄
一、條件測試
1.1 test命令
1.1.1說明
測試表達式是否成立,若不成立返回0,否則返回其他數值
1.1.2 格式1
test 條件表示式
1.1.3 格式2
[ 條件表示式 ]
1.1.4 測試選項
測試選項 | 作用 |
---|---|
-b 檔案判斷該檔案是否存在,並且是否為塊裝置檔案 | |
-c 檔案 | 判斷該檔案是否存在,並且是否為字元裝置檔案 |
-d 檔案 | 判斷該檔案是否存在,並且是否為目錄檔案 |
-e 檔案 | 判斷該檔案是否存在 |
-f 檔案 | 判斷該檔案是否存在,並且是否為普通檔案 |
-L 檔案 | 判斷該檔案是否存在,並且是否為符號連結檔案 |
-p 檔案 | 判斷該檔案是否存在,並且是否為管道檔案 |
-s 檔案 | 判斷該檔案是否存在,並且是否為非空 |
-S 檔案 | 判斷該檔案是否存在,並且是否為套接字檔案 |
1.2 檔案測試
1.2.1 格式
[ 操作符 檔案或目錄 ]
1.2.2 常用操作符
常用操作符 | 說明 |
---|---|
-d | 測試是否為目錄(Directory) |
-e | 測試目錄或檔案是否存在(Exist) |
-f | 測試是否為檔案(File) |
-r | 測試當前使用者是否有許可權讀取(Read) |
-w | 測試當前使用者是否有許可權寫入(Write) |
-x | 測試當前使用者是否有許可權執行(eXcute) |
1.3 整數值比較
1.3.1 格式
[ 整數1 操作符 整數2 ]
1.3.2 常用操作符
常用操作符 | 說明 |
---|---|
-eq | 等於(Equal) |
-ne | 不等於(Not Equal) |
-lt | 小於(Lesser Than) |
-gt | 大於(Greater Than) |
-le | 小於或等於(Lesser or Equal) |
-ge | 大於或等於(Greater or Equal) |
1.4 字串比較
1.4.1 格式1
[ 字串1 = 字串2 ]
[ 字串1 != 字串2 ]
1.4.2 格式2
[ -z 字串 ]
1.4.3 常用操作串
常用操作串 | 說明 |
---|---|
= | 字串內容相同 |
!= | 字串內容不同,!號表示相反的意思 |
-z | 字串內容為空 |
-n | 檢查是否有字串存在 |
1.5 邏輯測試
1.5.1 格式1
[ 表示式1 ] 操作符 [ 表示式2 ]
1.5.2 格式2
命令1 操作符 命令2
1.5.3 常用操作符
常用操作符 | 說明 |
---|---|
-a或&& | 邏輯與,而且的意思 |
-o或▕▕ | 邏輯或,或者的意思 |
! | 邏輯否 |
二、if語句
2.1 if 單分支語句
2.1.1 語法結構
if 條件測試操作
then 命令序列
fi
2.1.2 結構圖
2.1.3 例項:
2.2 if 雙分支語句
2.1.1 語法格式
if 條件測試操作
then
命令序列1
else
命令序列2
fi
2.1.2 結構圖
2.1.3 例項
2.3 if 多分支語句
2.3.1 語法結構
if 條件測試操作1
then
命令序列1
elif 條件測試操作2
then
命令序列2
else
命令序列3
fi