——利用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 //三个表达式有一个成立则为真