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
#即equalINTEGER1 -gt INTEGER2
#即greater thanINTEGER1 -le INTEGER2
#即less or equalINTEGER1 -lt INTEGER2
#即less thanINTEGER1 -ne INTEGER2
#即not equalFILE1 -ef FILE2
#FILE1和FILE2有一样的device和inode编号FILE -nt FILE2
#即newer thanFILE -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在一个终端被打开了