我们知道,在shell编程中,test关键字和 [] 中括号基本上是可以划等号的,所以一下的这些test的参数当然也可以在[]中使用。
1.判断表达式:
if test exp 或者 if [ exp ] 表达式exp为真
if test ! exp 或者 if [ ! exp ] 表达式exp为假
test exp1 -a exp2 或者 if [ exp1 -a exp2 ] 两个表达式都为真
test exp1 -o exp2 或者 if [ exp1 -o exp2 ] 两个表达式有一个为真
2.判断字符串
test -n str 字符串str的长度非零
test -z str 字符串str的长度为零
test str1 = str2 字符串相等
test str1 != str2 字符串不相等
3.判断整数
test num1 -eq num2 整数相等
test num1 -ge num2 整数1大于等于整数2
test num1 -gt num2 整数1大于整数2
test num1 -le num2 整数1小于等于整数2
test num1 -lt num2 整数1小于整数2
test num1 -ne num2 整数1不等于整数2
4.判断文件
test file1 -ef file2 两个文件具有同样的设备和节点号
test file1 -nt file2 文件1比文件2新
test file1 -ot file2 文件1比文件2旧
test -b file 文件存在并且是块设备文件
test -c file 文件存在并且是字符设备文件
test -d file 文件存在并且是目录
test -e file 文件存在
test -f file 文件存在并且是正规文件
test -g file 文件存在并且是设置了组ID
test -G file 文件存在并且属于有效组ID
test -h file 文件存在并且是一个符号链接
test -k file 文件存在并且设置了sticky位
test -L file 文件存在并且是一个符号链接
test -o file 文件存在并且属于有效用户ID
test -p file 文件存在并且是一个命名管道
test -r file 文件存在并且可读
test -s file 文件存在并且是一个套接字
test -t fd 文件描述符是在一个终端打开的
test -u file 文件存在并且设置了它的set-user-id位
test -w file 文件存在并且可写
test -x file 文件存在并且可执行