一、條件測試操作
1)test 測試命令
基本格式:test條件表達式
或[條件表達式]
文件測試參數
-d測試是否爲目錄
-e測試目錄或文件是否存在
-f測試是否爲文件
-r測試當前用戶是否有權限讀取
-w測試當前用戶是否有權限寫入
-x測試是否設置有可執行權限
例:檢測目錄/media/cdrom 是否存在
結合命令分隔符"&&"和echo命令一起使用,可以更直觀的輸出測試結果
例:
2)整數值比較
-eq 等於(=)
-ne 不等於(≠)
-gt 大於(>)
-lt 小於 (<)
-le 小於等於 (≤)
-ge 大於等於 (≥)
例:統計當前目錄下的文件和子目錄個數
例:判斷當前可用的空前內存是否小於1024MB
3)字符串比較
= 第一個字符串與第二個字符串相同
!= 第一個字符串與第二個字符串不相同,其中"!"符號表示取反的意思
-z 檢測字符串是否爲空,對於未定義或賦予空值的變量將視爲空串
例:
例:結合read命令使用
4)邏輯測試
&&邏輯與,可替換爲 -a
||邏輯或,可替換爲 -o
!邏輯否
例:查看Linux 系統的內核版本是否大於2.4
二、if 語句的使用
1)單分支if 語句
基本格式:
if條件測試操作
then
命令序列
fi
執行流程圖:
例1:判斷 /media/cdrom 目錄是否存在,若不存在則新建此目錄
例2:檢測當前登錄用戶是否爲root,其中"exit 1"退出腳本(1表示退出後的返回狀態值)
2)雙分支if語句
基本格式:
If條件測試操作
then
命令序列1
else
命令序列2
fi
執行流程:
例1:檢測目標主機是否存在
例2:檢測服務運行狀態
3)多分支 if 語句
基本格式:
if條件測試操作1
then
命令序列1
elif條件測試操作2
then
命令序列2
else
命令序列3
fi
執行流程:
例:根據輸入的考試分數不同來區分優秀、合格、不合格三檔
例:檢測任意服務運行狀態