test
test和[ ]
test EXPRESSION
用来测试EXPRESSION的值,常用在shell脚本条件结构的条件部分,[ EXPRESSION ]
是test EXPRESSION
的另外一种表达方式,ATTENTION:"EXPRESSION"两边各有一个"空格"
test ( EXPRESSION )
#EXPRESSION为真
test ! EXPRESSION
#EXPRESSION为假
test EXPRESSION_1 -a EXPRESSION_2
#即all, EXPRESSION_1和EXPRESSION_2都为真
test EXPRESSION_1 -o EXPRESSION_2
#即or, EXPRESSION_1和EXPRESSION_2有一个为真
-n STRING
#即nozero,STRING的长度不为零(nonzero), 此时-n
可以省略
-z STRING
#即zero,STRING的长度为零
STRING1=STRING2
#两个字符串相等 , 等号两端各留一个空格!
STRING1!=STRING2
#两个字符串不相等
INTEGER1 -eq INTEGER2
#即equal
INTEGER1 -gt INTEGER2
#即greater than
INTEGER1 -le INTEGER2
#即less or equal
INTEGER1 -lt INTEGER2
#即less than
INTEGER1 -ne INTEGER2
#即not equal
FILE1 -ef FILE2
#FILE1和FILE2有一样的device和inode编号
FILE -nt FILE2
#即newer than
FILE -ot FILE2
#即older than
-b FILE
#即block,FILE存在且是一个块设备文件
-c FILE
#即character,FILE存在且是一个字符设备文件
-d FILE
#即directory,FILE存在且是一个目录
-e FILE
#即exist,FILE存在
-f FILE
#FILE存在且是一个普通文件
-g FILE
#即GID,FILE存在且被设置了SGID位
-G FILE
#即effective GID,FILE存在且属于一个有效的GID
-L FILE
#即link,FILE存在且是一个符号链接
-O FILE
#即Owner,FILE存在且属于一个有效的UID
-p FILE
#即pipe,FILE存在且是一个有名管道文件
-r FILE
#即read,FILE存在且被授予了读权限
-s FILE
#即size,FILE存在且文件不为0
-S FILE
#即socket,FILE存在且是一个套接字文件
-u FILE
#即UID,FILE存在且设置了UID
-w FILE
#即write,FILE存在且被授予了写权限
-x FILE
#即execute,FILE存在且被授予了执行权限
-t FD
#即terminal,FD在一个终端被打开了