Shell腳本——條件語句

條件測試

1、文件測試
2、整數值比較
3、字符串與邏輯測試

·

if語句:
單分支的if語句
雙分支的if語句
多分枝的if語句

·

1、文件測試

文件測試是指的是根據給定的路徑名稱,判斷對應的是文件還是目錄,或者判斷文件是否可讀、可寫、可執行等。

基本格式

test 條件表達式 或者 [ 條件表達式 ]

文件的常見操作選項如下:

選項 描述
-d 測試是否爲目錄(Directory)
-e 測試目錄或文件是否存在(Exist)
-f 測試是否爲文件(File)
-r 測試當前用戶是否有權限讀取(Read)
-w 測試當前用戶是否有權限寫入(Write)
-x 測試是否設置有可執行(Excute)權限

執行以上操作之後,可以通過“$?”可以獲得測試命令的返回狀態值,從而判斷是否成立

實際操作

格式一

test -d /etc/sysconfig (測試/etc裏的sysconfig目錄是否存在)
             echo $?(返回值爲0,則條件成立)

格式二

[ -d /etc/sysconfig ]
                echo$(若條件不成立,測試值將不爲0(通常爲1))

整數值比較

格式格式:[ 整數1 操作符 整數2 ]

常用操作選項

1、-eq:等於(Equal)
2、-ne:不等於(Not Equal)
3、-gt:大於(Greater Than)
4、-lt:小於(Lesser Than)
5、-le:小於或等於(Lesser or Equal)
6、-ge:大於或等於(Greater or Equal)

字符串比較

格式1:[ 字符串1 = 字符串2 ]
            [ 字符串1 ! = 字符串2 ]
格式2:[ -z 字符串]

常用操作選項

1、=:第一個字符串與第二個字符串相同
2、!=:第一個字符串與第二個字符串不相同,其或中“!”符號取反
3、-z:檢查字符串是否爲空,對於未定義或賦予空值的變量將視爲空串

邏輯測試

格式1:[ 表達式1 ] 操作符 [ 表達式2 ] ...
格式2:命令1 操作符 命令2 ...

常用操作選項

1、-a或&&:邏輯與,“而且”的意思
2、-o或||:邏輯或,“或者”的意思
3、!:邏輯否,表示“不”的意思

if語句

單分支結構

if 條件測試操作
then
   命令序列
fi

雙分支結構

if 條件測試操作
then
   命令序列1
then
   命令序列2
fi

多分枝結構

if 條件測試操作
then
   命令序列1
elif 條件性測試操作2
then
   命令序列2
else
   命令序列3
fi
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章