Linux shell中常用test命令来对一下三种情况做作条件判断
- 数值比较
- 字符串比较
- 文件比较
它的一个变种形式也是shell脚本中采用的更多的形式是使用方括号定义测试条件,记住方括号前后都要有空格
数值比较常用参数:
- [ n1 -eq n2 ] 检查n1和n2是否相等
- [ n1 -ge n2 ] 检查n1是否大于等于n2
- [ n1 -le n2 ] 检查n1是否小于等于n2
- [ n1 -gt n2 ] 检查n1是否大于n2
- [ n1 -lt n2 ] 检查n1是否小于n2
- [ n1 -ne n2 ] 检查n1是否不等于n2
字符串比较常用参数:(需要注意的是大于号和小于号必须要使用反斜杠进行转义,否则shell就把它当成是输入输出重定向了)
- [ str1 = str2 ] 检查str1是否等于str2
- [ str1 != str2 ] 检查str1是否不等于str2
- [ str1 < str2 ] 检查str1是否小于str2 (依次比较对应位置字母的ascii值)
- [ str1 > str2 ] 检查str1是否大于str2
- [ -n str1 ] 检查str1长度是否不等于0
- [ -z str1 ] 检查str1长度是否等于0
文件比较常用参数:
- [ -d file] 检查file是否存在且是一个目录
- [ -e file] 检查file是否存在
- [ -f file] 检查file是否存在且是一个文件
- [ -r file ] 检查file是否存在且可读
- [ -s file ] 检查file是否存在且非空
- [ -w file ] 检查file是否存在且可写
- [ -x file ] 检查file是否存在且可执行
- [ -O file ] 检查file是否存在且属于当前用户
- [ -G file ] 检查file是否存在且默认组与当前用户同组
- [ file1 -nt file2 ] 检查file1是否比file2新
- [ file1 -ot file2 ] 检查file1是否比file2新
网友评论