條件表達式返回的結果都爲布爾型shell
真爲1,假爲0express
[expression]測試
比較符blog
整數比較io
-eq:比較兩個整數是否相等,$A -eq $Btest
-ne:測試兩個整數是否不等,不等則爲真,等則爲假變量
-gt:大於爲真,小於爲假權限
-lt:小於爲真,大於爲假im
-ge:大於或者等於腳本
-le:小於或者等於
-e File 測試文件是否存在
-f File 測試文件是不是普通文件
-d File 測試指定路徑是不是目錄
-r File 測試文件是否有寫的權限
-w File 測試文件是否有寫的權限
-x File測試文件是否有執行的權限
-z:判斷指定的變量是否存在值
-n:測試字符是否爲空 非空爲真(0)
-s:文件的大小非0時爲真
!:邏輯非
雙目:
== 相等爲真
!= 不等爲真
> 大於爲真
< 小於爲真
-a:邏輯與 都爲真才爲真
-o:邏輯或 一個爲真就爲真
test expression
expression爲條件表達式
if test (表達式爲真)
if test !表達式爲假
test 表達式1 –a 表達式2 兩個表達式都爲真
test 表達式1 –o 表達式2 兩個表達式有一個爲真
!(A -a B)= !A -o !B
!(A -o B)= !A -a !B
&&:邏輯與,都爲真則爲真
若是第一個條件是真的,須要對第二個條件進行判斷
若是第一個條件是假的,不須要對第二個條件進行判斷,結果已經肯定爲假。
||:邏輯或,一個爲真則爲真
當第一個條件爲真的時候,不在去判斷第二條件,由於第一個表達式已經決定了整個表達式爲真
只有當第一個表達式爲假的時候纔回去判斷第二個表達式
操做實例:
建立兩個文件,一個是普通文件類型,另外一個是文件目錄
執行條件表達式
定義一個變量,將文件賦值給變量,而後經過條件表達式判斷該文件是否存在 (補充: 使用變量的時候最好是加上雙引號 " ")
編輯腳本
若是執行shell腳本時,後面跟着的參數的值 爲 3 才能輸出3個1,其餘則不輸出
在修改腳本,將&& 鏈接符號改爲 ||
執行腳本 當只有前面的條件不成立,後面的條件才執行
下面圖中的語句 [ -f /etc/host ] && { echo 1; echo 2; echo3 ;}
與之相等價的語句是
if [ 條件 ]
then
執行的命令
命令
fi
這條語句就是條件不成立時候執行的 [ -d /etc/hosts ] || { echo 1;echo 2;echo 3;}