Shell腳本——條件語句

條件測試

一、文件測試
二、整數值比較
三、字符串與邏輯測試ide

·測試

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

·字符串

一、文件測試

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

基本格式table

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

文件的常見操做選項以下: class

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

執行以上操做以後,能夠經過「$?」能夠得到測試命令的返回狀態值,從而判斷是否成立test

實際操做

格式一變量

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

格式二權限

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

整數值比較

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

經常使用操做選項

一、-eq:等於(Equal)
二、-ne:不等於(Not Equal)
三、-gt:大於(Greater Than)
四、-lt:小於(Lesser Than)
五、-le:小於或等於(Lesser or Equal)
六、-ge:大於或等於(Greater or Equal)

字符串比較

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

經常使用操做選項

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

邏輯測試

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

經常使用操做選項

一、-a或&&:邏輯與,「並且」的意思
二、-o或||:邏輯或,「或者」的意思
三、!:邏輯否,表示「不」的意思

if語句

單分支結構

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

雙分支結構

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

多分枝結構

if 條件測試操做
then
   命令序列1
elif 條件性測試操做2
then
   命令序列2
else
   命令序列3
fi
相關文章
相關標籤/搜索