——利用Shell的條件測試,可以為指令執行提供最直接的識别依據,為使用選擇、循環等更加“智能化”的腳本結構創造條件。
test 條件表達式
或
[ 條件表達式] //空格兩邊要有空格
#echo $?
0為真
非0為假
exist(存在)判斷對象(檔案或目錄)是否存在,存在為真
[root@sqlA ~]# [ -e /etc/yum ] && echo "yes"
Yes
directory(目錄)判斷對象是否是否是目錄,是則為真
[root@sqlA ~]# [ -d /etc/yum ] && echo "yes"
yes
file(檔案)判斷對象是否是檔案是則為真
[root@sqlA ~]# [ -f /etc/yum ] &&echo "yes"
[root@sqlA ~]#
read(讀)判斷對象是否有可讀權限,是則為真
write(寫)判斷對象是否有可寫權限,是則為真
execute (執行)判斷對象是否有可執行權限,是則為真
-eq equal(相等)相等為真
-ne not equal (不相等)不相等為真
-gt greater than (比…大)
-lt lesser than 比…小
-ge greater or equal 大于或等于
-le lesser or equal 小于或等于
判斷兩個字元串是否相同,相同為真
格式:字元串1 == 字元串2
判斷兩個字元串是否不相同,不相同為真
格式:字元串1 != 字元串2
判斷字元串的值是否為空,為空則為真
格式:-z 字元串
示例:
[root@ndbA shell]# name=""
[root@ndbA shell]# [ -z $name ] &&echo yes || echo no
[root@ndbA shell]# name="a"
[root@ndbA shell]# [ -z $name ] &&echo yes || echo no
no
判斷字元串的值是否不為空,不為空則為真
格式:-n 字元串
——有多個判斷條件時使用邏輯比較
表達式1 && 表達式2 && 表達式3 //三個表達式都成立則為真
表達式1 || 表達式2 || 表達式3 //三個表達式有一個成立則為真