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