——利用Shell的条件测试,可以为命令执行提供最直接的识别依据,为使用选择、循环等更加“智能化”的脚本结构创造条件。


1、基本用法

test 条件表达式

[ 条件表达式]    //空格两边要有空格


#echo  $?

0为真

0为假

2、文件状态判断

2.1 -e  

exist(存在)判断对象(文件或目录)是否存在,存在为真

[root@sqlA ~]# [ -e /etc/yum ] && echo "yes"

Yes


2.2 -d  

directory(目录)判断对象是否是否是目录,是则为真

[root@sqlA ~]# [ -d /etc/yum ] && echo "yes"

yes

2.3 -f  

file(文件)判断对象是否是文件是则为真

[root@sqlA ~]# [ -f /etc/yum ] &&echo "yes"

[root@sqlA ~]#

2.4 -r

read(读)判断对象是否有可读权限,是则为真

2.5 -w

write(写)判断对象是否有可写权限,是则为真

2.6 -x

execute (执行)判断对象是否有可执行权限,是则为真




3、整数值比较

3.1相等

-eq  equal(相等)相等为真

3.2不相等

-ne  not equal (不相等)不相等为真

3.3大于

-gt  greater  than (比大)

3.4小于

-lt  lesser than

3.5大于等于

-ge  greater or equal 大于或等于

3.6小于等于

-le   lesser or equal 小于或等于

4、字符串比较

4.1 ==

判断两个字符串是否相同,相同为真

格式:字符串1  == 字符串2

4.2 !=

判断两个字符串是否不相同,不相同为真

格式:字符串1  !=  字符串2

4.3 -z

判断字符串的值是否为空,为空则为真

格式:-z 字符串

示例:

[root@ndbA shell]# name=""

[root@ndbA shell]# [ -z $name ] &&echo yes || echo no    

yes

[root@ndbA shell]# name="a"

[root@ndbA shell]# [ -z $name ] &&echo yes || echo no

no

4.4 -n

判断字符串的值是否不为空,不为空则为真

格式:-n 字符串



5、逻辑比较

——有多个判断条件时使用逻辑比较

5.1 逻辑与 &&

表达式1  && 表达式2  && 表达式3  //三个表达式都成立则为真

5.2 逻辑或 ||

表达式1  || 表达式2  ||  表达式3  //三个表达式有一个成立则为真