條件測試命令: test命令 == [ 命令,bash的內置命令; 格式: test [表達式] [ expression ] [[:bash的關鍵字;通常僅用於某些特定結構或格式之中; [[ expression ]] 注意:此類條件測試命令通常沒有執行結構,僅有執行狀態返回值;若是其執行狀態返回值爲0,則表示true;若是其執行狀態返回值爲1,則表示爲false; 條件測試命令共有三類條件測試表達式: 1.數值測試 :雙目操做: 測試操做符: -eq:測試兩個數值是否相等;相等爲真,不等爲假; -ne:測試兩個數值是否不等;不等爲真,相等爲假; -lt:小於,測試左邊數值是否小於右邊的數值;小於爲真,不小於爲假; -gt:大於,測試左邊數值是否大於右邊的數值;大於爲真,不大於爲假; -le:小於等於,測試左邊數值是否小於等於右邊的數值;小於等於爲真,大於爲假; -ge:大於等於,測試左邊數值是否大於等於右邊的數值;大於等於爲真,小於爲假; 注意:bash僅支持證書,不支持浮點數; 2.字符串測試: 雙目測試: ==|=:測試兩個字符串是否爲相同的字符串;相同爲真,不一樣爲假; !=:測試兩個字符串是否爲不一樣的字符串;不一樣爲真,相同爲假; >:測試左邊的字符串所對應的ASCII編碼是否比右邊的字符串對應的ASCII編碼大;大於爲真,小於爲假; <:測試左邊的字符串所對應的ASCII編碼是否比右邊的字符串對應的ASCII編碼小;小於爲真,大於爲假; STRING =~ PATTERN:測試左側的字符串可否被右邊的PATTERN匹配;能匹配爲真,不能匹配爲假; 注意:>,<,=~這三類測試操做符是隻能用在[[ expression ]]測試語句中 單目測試: -z 'STRING':測試STRING是否爲空串;空串爲真,不空爲假; -n 'STRING':測試STRING是否爲非空串,不空爲真,空串爲假; 注意: 1)一般狀況下,字符串是要用引號引用的,單引號或雙引號均可以,只有在特定的狀況下,只能選擇單引號或雙引號之一; 2)[]和[[]]在某些狀況下,意義不徹底相同,要區分對待; 3)若是使用[]或[[]]進行條件判斷,在表達式兩端都有留有空白字符,以區分命令和參數之間的關係; 4)全部的雙目測試操做符和參數之間也要留有空白字符空間; 文件測試: 單目測試: -a|-e FILE:測試文件是否存在,存在爲真,不存在爲假; -b FILE:測試文件是否存在且爲塊設備文件,存在且爲塊設備爲真,不然爲假; -c FILE:測試文件是否存在且爲字符設備文件,存在且爲字符設備爲真,不然爲假; -d FILE:測試文件是否存在且爲目錄文件,存在且爲目錄文件爲真,不然爲假; -f FILE:測試文件是否存在且爲普通文件,存在且爲普通文件爲真,不然爲假; -h|-l FILE:測試文件是否存在且爲符號連接文件,存在且爲符號連接文件爲真,不然爲假; -s FILE:測試文件是否存在且其大小大於0,存在且其大小大於0爲真,不然爲假; -S FILE:測試文件是否存在且爲套接字文件,存在且其爲套接字文件爲真,不然爲假; -t FD:測試文件描述符是否在終端上被打開,被打開爲真,不然爲假; 文件的訪問權限測試: -r FILE:測試文件是否存在且當前用戶是否被授予讀取權限,存在且受權爲真,不然爲假; -w FILE:測試文件是否存在且當前用戶是否被授予寫權限,存在且受權爲真,不然爲假; -x FILE:測試文件是否存在且當前用戶是否被授予執行權限,存在且受權爲真,不然爲假; 文件特殊權限標識測試: -u FILE:測試文件是否存在且設置了SUID,存在且受權爲真,不然爲假; -g FILE:測試文件是否存在且設置了SGID,存在且受權爲真,不然爲假; -k FILE:測試文件是否存在且設置了STICKY,存在且受權爲真,不然爲假; 文件的全部權測試: -O FILE:測試文件是否存在且其屬主爲當前有效用戶;存在且屬主爲當前有效用戶爲真,不然爲假; -G FILE:測試文件是否存在且其屬組爲當前有效用戶的所在組;存在且屬組爲當前有效用戶的所在組爲真,不然爲假; 雙目測試: FILE1 -ef FILE2:測試兩個文件是否擁有相同的Ionde編號;即:兩個文件是否爲硬連接;(之後再細說) 測試語句中添加邏輯運算符號: 1.利用bash的邏輯運算符號 [ expression1 ] && [ expression2 ] 與 [ expression1 ] || [ expression2 ] 或 ![ expression1 ] 非 2.利用條件測試命令自己的邏輯運算符號: [ expression1 -a expression2 ] 與運算 [ expression1 -o expression2 ] 或運算 [ !expression1 ] 取反 命令的執行結果: 1.命令的正常輸出結果; 2.命令的執行狀態返回值; 0-255 0:表示命令成功執行或者條件判斷爲真; 1-255:表示命令執行失敗或者條件判斷爲假; 1,2,127:系統默認保留; 3-126,128-255:用戶自定義的命令執行狀態返回值; exit命令: exit - exit the shell 格式: exit [n] 退出shell時可使用n做爲狀態返回值;若是沒有指定n,則默認的狀態返回值爲最後一條命令的狀態返回值; 注意:當shell腳本運行時,一旦遇到exit命令,將當即結束運行此腳本的shell進程,同時此腳本的運行也會中止其後續的全部命令都不會再被解釋執行;所以,包含了exit命令的腳本,不要是用source命令來執行;