当前位置: 首页 > java >正文

【shell】Shell脚本中的if判断条件和文件测试操作符

👻创作者:丶重明
👻创作时间:2025年8月30日
👻擅长领域:运维

目录

    • -e:检查文件或目录是否存在
    • -d:检查路径是否为一个目录
    • -f:检查路径是否为一个常规文件
    • -r、-w、-x:检查文件的读写执行权限
    • -s:检查文件是否存在且非空
    • -z:用于检查字符串是否为空

在Shell脚本中,if 语句是最常用的条件判断结构之一,在实际应用中,我们常常需要检查文件的存在与属性,例如是否是目录、是否是普通文件、是否可读可写等。

Shell 提供了一系列的文件测试操作符,帮助我们轻松实现这些判断。


-e:检查文件或目录是否存在
-d:检查路径是否为目录
-f:检查路径是否为常规文件
-r:检查文件是否可读
-w:检查文件是否可写
-x:检查文件是否可执行
-s:检查文件是否存在且非空
-z:检查字符串是否为空
-n:检查字符串是否非空
!:用于反转测试结果


-e:检查文件或目录是否存在

-e 操作符用于检查指定的文件或目录是否存在。

它是最基本的文件测试操作符,适用于所有类型的文件和目录。

if [ -e /path/to/file ]; thenecho "文件或目录存在"
elseecho "文件或目录不存在"
fi

-d:检查路径是否为一个目录

-d 操作符用于检查指定路径是否是一个目录。

如果路径是目录,则返回 true,否则返回 false。

if [ -d "/data" ]; thenecho "已经存在"
elsemkdir /dataecho "/data 目录已创建"
fi

-f:检查路径是否为一个常规文件

-f 操作符用于检查指定路径是否是一个常规文件(普通文件)。

它不会检查符号链接、设备文件等其他特殊文件类型。

if [ -f "/data/file.txt" ]; thenecho "文件已存在"
elsetouch /data/file.txtecho "文件已创建"
fi

-r、-w、-x:检查文件的读写执行权限

-r、-w、-x用于检查文件是否具有读写执行权限

FILE="/data/test.sh"
if [ -x "$FILE" ]; thenecho "$FILE 可执行"
elseecho "$FILE 不可执行"
fi

-s:检查文件是否存在且非空

-s 操作符用于检查文件是否存在并且大小大于0。

如果文件存在且非空,则返回 true,否则返回 false。

FILE="test.txt"# 判断文件是否存在
if [ -e "$FILE" ]; then# 文件存在,判断是否为空if [ -s "$FILE" ]; thenecho "$FILE 存在且非空"elseecho "$FILE 存在但为空,正在删除..."rm "$FILE"  # 删除空文件fi
elseecho "$FILE 不存在"
fi

-z:用于检查字符串是否为空

-z 用于检查字符串是否为空(长度为0)。

text=""# 判断字符串是否为空
if [ -z "$text" ]; thenecho "字符串为空"
elseecho "字符串不为空"
fi
http://www.xdnf.cn/news/19357.html

相关文章:

  • shell编程基础入门-1
  • Spring : 事务管理
  • 深度学习函数
  • 洛谷 P1395 会议 -普及/提高-
  • 一款基于selenium的前端验证码绕过爆破工具
  • java怎么实现根据指标预警的功能
  • C++多态介绍
  • 【Leetcode】17、电话号码的字母组合
  • 哪些人需要考道路运输安全员证?政策要求与适用范围
  • C++day2作业
  • 突破视界的边界:16公里远距离无人机图传模块全面解析
  • 毕业项目推荐:47-基于yolov8/yolov5/yolo11的焊缝质量检测识别系统(Python+卷积神经网络)
  • pip 镜像源配置(清华/阿里/豆瓣)详解
  • 智瞰风评 - 基于大语言模型的个人征信报告风险分析师
  • k8s--efk日志收集
  • 用简单仿真链路产生 WiFi CSI(不依赖专用工具箱,matlab实现)
  • Java数组入门教程:零基础掌握数组定义与遍历+新手避坑指南
  • Python3 lambda(匿名函数)
  • 轻量xlsx读取库xlsx_drone的编译与测试
  • 元素滚动scrollIntoView
  • A5M2(数据库管理工具)下载安装
  • 谈物质的运动与运动的物质
  • 智能消防栓闷盖终端:让城市消防管理更智慧高效
  • Robolectric拿到当前的Activity
  • 基于轴重转移补偿和多轴协调的粘着控制方法研究
  • 线性回归算法
  • Lombok(简化Java当中的开发)
  • 下载 | Win11 23H2正式版最新原版ISO系统映像 (22631.5840、多合一版本)-修复系统问题
  • 基于STM32单片机的OneNet物联网云平台农业土壤湿度控制系统
  • 编程与数学 03-004 数据库系统概论 09_物理结构设计