shell的判断结构

来源:互联网 发布:网络红人马浩东前女友 编辑:程序博客网 时间:2024/06/06 07:45

shell有一条内部命令test,它的另一种写法是"[ ] ",即shell的布尔值判断命令

test命令的一般格式是:

test 表达式

或者是:

[ 表达式 ]


test命令所判断的表达式通常是一些由shell命令所支持的操作符组成而成的,这些操作符包括字符串操作符,整数操作符,文件操作符,其中test的字符串操作符的表示方式及test退出状态为0时的条件如下

关于判断文件名的“文件类型”判断,如test -e filename表示存在否(常用)

-e  该文件名是否存在

-f   该文件名是够存在且为文件(file)

-d  该文件名是否存在且为目录


关于文件的权限检测

-r  检测该文件名是否存在且具有“可读”权限

-w 检测该文件名是否存在且具有“可写”权限

-x 检测该文件名是否存在且具有“可执行”权限

-s 检测该文件是否存在且为“非空白文件”


俩个整数之间的判断  例如test n1 -eq n2

-eq 俩数值相等(equal)

-ne 俩数值不等(not equal)

-gt n1大于n2 (greater than)

-lt   n1小于n2(less than)

-ge  n1大于等于n2(greater than or equal)

-le n1小于n2 (less than or equal)


判断字符串的数据

test -n string 判定字符串是否为0,如果为0,则为true

test -z string  判定字符串是否非为0,如果string为空字符串,则为false。注:-n可省略

test str2=str2  判定str1是否等于str2,若相等,则为true

test str2!=str2  判定str1是否不等于str2,若相等,则为false


多重条件判断,例如 test -r filename -a -x filename

-a 俩个条件同时成立  例如test -r file -a -x file,则file 同时具有r和x权限时,才回传true

-o  任何一个条件成立,  例如test -r file -a -x file,则file 具有r或x权限时,才回传true

! 反向状态,如test ! -x file 当file不具有x时,回传true






原创粉丝点击