天天看点

linux shell编程学习笔记(4)shell条件测试

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

继续阅读