一、 文件测试与数值测试
1、文件测试
[ 操作符 文件或目录 ]
1、常用的测试操作符
-d∶ 测试是否为目录(Directory)
-e∶ 测试目录或文件是否存在(Exist)
-f∶ 测试是否为文件(File)
-r∶ 测试当前用户是否有权限读取(Read)
-w∶ 测试当前用户是否有权限写入(Write)
-x∶测试当前用户是否有权限执行(eXcute)
-L∶测试是否为软链接文件
例:测试 test.sh 是否为文件和目录,test.sh 是一个脚本文件,不是目录。
2、test命令
格式1: test 条件表达式
格式2: [ 条件表达式 ]
常用的测试操作符
-eq∶ 等于(Equal)
-ne∶ 不等于(Not Equal)
-gt∶ 大于(Greater Than)
-lt∶ 小于(Lesser Than)
-le∶ 小于或等于(Lesser or Equal)·
-ge∶ 大于或等于(Greater or Equal)
例:判断 6 与 3 的大小关系 (表达式与判断符之间要有空格,否则会报错)
或
3、整数比较
【 整数1 操作符 整数2 】
[root@localhost ~]# who | wc -l
1
[root@localhost ~]# [ $(who | wc -l) -lt 4 ] && echo "<4"
<4
[root@localhost ~]# FreeCC=$(free -m | grep "Mem:" | awk '{print $6}')
[root@localhost ~]# [ $FreeCC -lt 2024 ] && echo ${FreeCC}MB
1036MB
4、字符串比较
1. 字符串测试与逻辑测试
格式1:
[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2:
[ -z 字符串 ]
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]# [ $LANG != "en.US" ] && echo "Not en.US"
Not en.US
5、常用的测试操作符
-a或&& 逻辑与,“而且”的意思
-o或|| 逻辑或,“或者”的意思
! 逻辑否
判断/etc 是否为目录和是否有可读权限
[root@localhost ~]# [ -d /etc ] && [ -r /etc ] && echo "you can open it"
you can open it