Shell 比较符号

470 阅读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

字符串比较

比较 描述
str1 = str2 str1是否和str2相同
str1 != str2 str1是否和str2不同
str1 < str2 str1是否比str2小
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旧

参考

  • 《Linux命令行与shell脚本编程大全》第3版