shell脚本中的比较运算
重要!!! 比较运算均用方括号[] 括起来,形如[ n1 oper n2 ] 或 [ oper n1 ]的格式。 第一个中括号[ 的后面和第二个中括号 ]的前面必须加上空格。
1、数值比较
比 较 | 描 述 |
---|---|
n1 -eq n2 | 检查n1是否与n2相等 |
n1 -ge n2 | 检查n1是否大于或等于n2 |
n1 -gt n2 | 检查n1是否大于n2 |
n1 -le n2 | 检查n1是否小于或等于n2 |
n1 -lt n2 | 检查n1是否小于n2 |
n1 -ne n2 | 检查n1是否不等于n2 |
bash shell只能处理整数运算,若需要用到浮点数运算,需使用bc命令
2、字符串比较
比 较 | 描 述 |
---|---|
str1 = str2 | 检查str1是否与str2相同 |
str1 != str2 | 检查str1是否与str2不同 |
str1 \< str2 | 检查str1是否比str2小,此处需要用 \ 转义 |
str1 \> str2 | 检查str1是否比str2大,此处需要用 \ 转义 |
-n str1 | 检查str1的长度是否非0 |
-z str2 | 检查str1的长度是否为0 |
上述比较运算均需要用[ ]括起来,否则str1=str2将解释成赋值语句。
3、文件比较
比 较 | 描 述 |
---|---|
-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旧,俩者均须存在,否则结果非预期 |