Shell中的条件判断(测试)类型:
1) 整数测试
2) 字符测试
3) 文件测试
条件测试的表达式: (注: expression 与 [] 之间空格不能省略)
[ expression ]
[[ expression ]]
test expression
expression的逻辑结果即为整个条件测试的结果,0为真,其他结果均为假.
expression中为整数比较时:
-eq: 测试两个整数是否相等, 比如 $A -eq $B; --equal
-ne: 测试两个整数是否不等;不等,为真;相等,为假; --not equal
-gt: 测试一个数是否大于另一个数;大于,为真;否则,为假; --great than
-lt: 测试一个数是否小于另一个数;小于,为真;否则,为假; --less than
-ge: 大于或等于 --great or equal
-le:小于或等于 --less equal
1 /* 2 * 给定一个用户: 3 * 1、如果其UID为0,就显示此为管理员; 4 * 2、否则,就显示其为普通用户; 5 **/ 6 7 #!/bin/bash 8 9 USER=root 10 if [ `id -u $USER` -eq 0 ]; then 11 echo 'Administrator' 12 else 13 echo 'Common User' 14 fi
expression中为文件测试时:
-e FILE:测试文件是否存在 ;
-f FILE: 测试文件是否为普通文件 ;
-d FILE: 测试指定路径是否为目录 ;
-r FILE: 测试当前用户对指定文件是否有读取权限;
-w FILE: 测试当前用户对指定文件是否有写权限;
-x FILE: 测试当前用户对指定文件是否有执行权限;
1 #!/bin/bash 2 # 3 FILE=/etc/inittab 4 if [ ! -e $FILE ]; then 5 echo "The file doesn't exist." 6 exit 8 7 fi 8 ...
expression中为字符(串)测试:
==:测试是否相等,相等为真,不等为假 (=也可,因为shell能识别)
!=: 测试是否不等,不等为真,等为假 (等号两端要有空格)
> :
< :
-n string: 测试指定字符串是否为空,空则真,不空则假
-z string: 测试指定字符串是否不空,不空为真,空则为假