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

条件测试与条件判断的脚本编写思路

测试命令语法与路径表达在编写脚本前,需单独测试命令是否能实现需求。例如检查文件是否存在:

test -e /opt/1.txt # 或使用方括号格式 [ -e /opt/1.txt ]

通过echo $?验证返回值(0为真,非0为假)。

变量与命令结合将静态路径替换为变量,增强脚本灵活性:

file_path="/opt/1.txt" [ -f "$file_path" ] && echo "文件存在" || echo "文件不存在"

调试脚本使用bash -x逐行调试脚本,观察变量展开与命令执行顺序:

bash -x your_script.sh

条件判断操作符详解

文件/目录测试

  • -e:目标是否存在(文件或目录均可)
  • -f:目标是否为普通文件
  • -d:目标是否为目录
  • -L:目标是否为符号链接
  • -r/-w/-x:检查当前用户对目标的读/写/执行权限

逻辑运算符

  • &&(或-a):仅当左侧命令成功(返回0)时执行右侧命令
  • ||(或-o):仅当左侧命令失败(返回非0)时执行右侧命令
[ -f "/opt/1.txt" ] && echo "Found" || echo "Not found"

数值比较操作符

整数比较

  • -eq:等于(等价于==
  • -ne:不等于(等价于!=
  • -gt:大于(等价于>
  • -lt:小于(等价于<
  • -ge:大于等于(等价于>=
  • -le:小于等于(等价于<=

示例:

a=19 [ "$a" -gt 10 ] && [ "$a" -lt 20 ] && echo "在10到20之间"

多分支条件结构

if-elif-else 示例根据多个条件执行不同分支:

food="面条" if [ "$food" = "米饭" ]; then echo "去吃米饭" elif [ "$food" = "面条" ]; then echo "去吃面条" elif [ "$food" = "烤鱼" ]; then echo "去吃烤鱼" else echo "吃馒头" fi

注意事项

  • 字符串比较使用=而非-eq(后者用于数值)。
  • 方括号内变量建议用双引号包裹,避免空值或空格导致语法错误。
  • 缩进非必须但可提升可读性。
http://www.jsqmd.com/news/852609/

相关文章:

  • 5分钟实战:用Sunshine轻松搭建你的专属游戏串流服务器
  • 深度学习CNN(二)—— 三大设计哲学 + 池化(三十九)
  • Go语言实现分布式缓存:从LRU到多级缓存架构
  • csp信奥赛C++高频考点专项训练之前缀和差分 --【一维前缀和】:宝石串
  • 经典客户案例 | 跳过 12 万次重部署:JRebel 热重载在 NTT Data SAP 项目的落地实践
  • 谷歌学术走过风雨十年 听创始人畅谈苦辣酸甜
  • 为什么你的DeepSeek推理慢8倍?揭秘模型加载阶段的内存映射漏洞与mmap优化实测(附perf火焰图对比)
  • Windows安卓APK直装终极方案:告别模拟器臃肿的3步安装指南
  • 如何快速提升GitHub访问速度:终极浏览器插件使用指南
  • 香蕉派RK3588开发板深度评测:8核ARM架构与6TOPS NPU的AI边缘计算实战
  • 从C++代码到机器指令:用OD和IDA手把手拆解一个简单的main函数(附寄存器图解)
  • 别再手动画边界了!ENVI Seamless Mosaic‘接边线编辑’技巧:5分钟让道路、河流拼接天衣无缝
  • DaVinci Resolve 19.1.4热补丁已失效!Sora 2 v2.3.1强制接管GPU调度的5个底层驱动级修复指令
  • 深入解析可替换代币:从核心原理到未来布局
  • 让Xbox控制器在Mac上完美工作:360Controller驱动全面指南
  • AntiDupl.NET终极指南:3步快速清理电脑重复图片,释放宝贵存储空间
  • Forge:自托管大语言模型工具调用的可靠性层,多方式使用、多后端支持!
  • SWAT建模效率提升:利用已有河网数据优化子流域划分结果
  • 告别手动标注!用MFA在Windows 10上5分钟搞定音频文本自动对齐(附Praat可视化教程)
  • 技术深度解析:PPTAgent与DeepPresenter两大AI演示生成系统架构对比与选型指南
  • 开发小区快递取件路线优化程序,整合快递点位,规划高效取件出行路线。
  • HarmonyOS通知开发全解析:从渠道创建到高级应用
  • 为团队开发环境统一配置Taotoken的CLI工具与API密钥
  • 2026年网站建设哪家服务好?5款热门建站工具推荐! - FaiscoJeff
  • PPTAgent与DeepPresenter:AI演示文稿生成框架的终极指南
  • 账龄分析能发现哪些现金流隐患?账龄分析如何支撑企业经营决策?
  • VR-Reversal终极指南:如何将3D VR视频转换为可分享的2D视频
  • 2026全国油泼辣子TOP5!这些源头工厂匠心地道川味受好评 - 十大品牌榜
  • Python爬虫实战:用requests库抓取米游社原神COS图片并自动保存到本地
  • 20253915 2024-2025-2 《网络攻防实践》实践11报告 -