Shell 脚本 test 命令详解

test命令在bash shell脚本中经常以中括号([])的形式出现,而且在脚本中使用字母来表示比符号表示更专业,出错率更低。

测试标志 代表意义
文件名、文件类型
-e 该文件名是否存在
-f 该文件名是否存在且为file
-d 该文件名是否存在且为目录
-b 该文件名是否存在且为一个block
-c 该文件名是否存在且为一个character device设备
-S 该文件名是否存在且为一个socket文件
-p 该文件名是否存在且为一个FIFO(pipe)文件
-L 该文件名是否存在且为一个连接文件
文件权限检测
-r 检测文件名是否存在且具有“可读”权限
-w 检测文件名是否存在且具有“可写”权限
-x 检测文件名是否存在且具有“可执行”权限
-u 检测文件名是否存在且具有“SUID”权限
-g 检测文件名是否存在且具有“SGID”权限
-k 检测文件名是否存在且具有“Sticky bit”权限
-s 检测文件名是否存在且为“非空白文件”
两个文件的比较
-nt (newer than)判断file1是否比file2新
-ot (older than)判断file是否比file2旧
-ef 判断file1与file2是否为同一个文件,可用在判断hard link上
数字之间的判定
-eq equal
-ne not equal
-gt greater than
-lt less than
-ge greater than or equal
-le less than or equal
判断字符串的数据
test -z string 判断字符串是否为0,若为空返回true
test -n string 判断字符串是否为0,若为空返回false
test str1 = str2 判断str1是否等于str2,若相等,返回true
test str1 != str2 判断str1是否等于str2,若相等,返回false
多重条件的判断
-a 两个条件同时成立,eg:test -r file a test -x file,同时成立返回true
-o 任何一个条件成立,eg:test -r file o test -x file,同时成立返回true
反向状态,如test!-x file,当file不具有x时,返回true
posted @   Binge-和时间做朋友  阅读(367)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2020-10-20 Log4j 配置详解
2020-10-20 Spring AOP 框架
2020-10-20 Spring IoC 容器
2020-10-20 Spring 简介
2020-10-20 window 安装 mysql8 教程
点击右上角即可分享
微信分享提示