1. 程式人生 > 其它 >shell指令碼—條件測試、if語句

shell指令碼—條件測試、if語句

目錄

一、條件測試

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

2.3.2 結構圖

2.3.3 例項