news 2026/5/30 8:53:59

第1章 Shell基础语法核心(20例,初级运维)-补充内容004【运算符、判断变量、比较数字等】【20251228】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第1章 Shell基础语法核心(20例,初级运维)-补充内容004【运算符、判断变量、比较数字等】【20251228】

文章目录

  • Shell脚本比较运算完全指南(零基础全详解版)
    • 前言:Shell比较的核心底层逻辑(新手必吃透)
      • 关键前置知识(新手避坑第一步)
    • 一、除`=`/`==`外的常用比较运算符(全维度解析+海量基础实例)
      • 1. 字符串比较运算符(新手高频场景,细化到每一个细节)
        • 字符串比较深度实例(覆盖新手90%场景)
          • 实例1:基础字符串相等/不相等判断(含特殊字符)
          • 实例2:ASCII码比较的坑点(新手必看)
          • 实例3:跨Shell兼容性测试(sh vs bash)
      • 2. 数字比较运算符(新手最易踩坑,全场景覆盖)
        • 数字比较深度实例(覆盖新手90%场景)
          • 实例1:基础整数比较(POSIX vs bash语法对比)
          • 实例2:浮点数比较(新手必学的补充方法)
          • 实例3:数字比较的经典错误(新手避坑)
      • 3. 文件测试运算符(运维高频,零基础全掌握)
        • 文件测试深度实例(运维实战场景)
          • 实例1:基础文件测试(配置文件检查)
          • 实例2:文件新旧判断(备份有效性检查)
          • 实例3:软链接与普通文件区分(新手易混)
      • 4. 逻辑组合运算符(多条件判断,零基础吃透)
        • 逻辑组合深度实例(复杂场景全覆盖)
          • 实例1:基础逻辑与/或(范围判断)
          • 实例2:逻辑非与嵌套(复杂条件)
          • 实例3:短路运算(性能优化,新手必知)
    • 二、脚本中判断变量是否为空(全场景+全方法+全反例)
      • 方法1:`-z` 运算符(POSIX标准,最推荐)
        • 完整实例(覆盖所有空场景)
        • 避坑点:`[ ]` 中变量必须加双引号!
      • 方法2:`[[ -z $var ]]`(bash扩展,更简洁)
      • 方法3:直接比较空字符串(新手最易理解)
      • 方法4:判断“空白字符视为空”(进阶,运维常用)
      • 方法5:默认值与强制赋值(脚本实用技巧)
      • 方法6:命令返回值判空(运维高频)
    • 三、脚本中进行数字比较(全场景+全方法+错误分析)
      • 核心原则:数字比较≠字符串比较
      • 方式1:POSIX标准语法(所有Shell支持)
        • 完整实例(覆盖所有数字场景)
      • 方式2:bash扩展语法(更直观,推荐)
        • 完整实例(覆盖所有数字场景)
      • 方式3:浮点数比较(运维必备补充)
        • 方法1:bc工具(精准,推荐)
        • 方法2:awk工具(简洁,适合复杂逻辑)
      • 数字比较的常见错误(新手避坑手册)
    • 四、新手避坑总结(10大高频错误+修复方案)
      • 错误1:`[ ]` 前后不加空格
      • 错误2:`[ ]` 中变量不加双引号
      • 错误3:用`=`/`==`比较数字
      • 错误4:`(( ))` 中用`-eq`/`-gt`
      • 错误5:浮点数用整数运算符比较
      • 错误6:`[ ]` 中用`&&`/`||`
      • 错误7:判断仅空格的变量为空
      • 错误8:软链接判断错误(用-f穿透)
      • 错误9:短路运算逻辑错误
      • 错误10:跨Shell使用bash扩展语法
    • 五、实战脚本案例(零基础可直接运行)
      • 案例1:用户输入验证脚本(字符串+数字比较)
      • 案例2:系统资源监控脚本(文件+数字+浮点数比较)
      • 案例3:文件批量处理脚本(文件测试+逻辑组合)
    • 六、零基础练习题(基础+进阶,附解析)
      • 基础题(必做)
      • 进阶题(选做)
      • 基础题参考答案
        • 题1:分数范围判断
        • 题2:脚本文件检查与执行
        • 题3:变量判空并赋值
      • 进阶题参考答案(题1:浮点数求和比较)
    • 总结:零基础学习路径

Shell脚本比较运算完全指南(零基础全详解版)

前言:Shell比较的核心底层逻辑(新手必吃透)

Shell 作为Linux系统的核心交互工具,其比较运算和编程语言(如Python/Java)有本质区别——无布尔值类型,所有判断结果通过「退出状态码」体现:

  • 0= 真(条件成立):上一条命令/判断“执行成功且符合预期”
  • 非0(通常是1,特殊场景可能是2/127等)= 假(条件不成立/执行失败)
  • 示例验证:执行[ 10 -eq 10 ]; echo $?→ 输出0;执行[ 10 -eq 20 ]; echo $?→ 输出1

关键前置知识(新手避坑第一步)

  1. Shell版本差异
    • sh(Bourne Shell):POSIX标准基础版,仅支持[ ]/POSIX运算符,无[[ ]]/(( ))
    • bash(Bourne-Again Shell):Linux默认Shell,兼容sh,新增[[ ]]/(( ))扩展语法
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/29 21:33:00

如何利用大语言模型(LLM)实现自动标注与内容增强

How to Leverage LLMs for Auto-tagging & Content Enrichment 文章摘要 本文探讨了如何利用大语言模型(LLM)进行自动标注与内容增强,以提升企业内容管理的效率与质量。通过LLM较低的初始投资和高效的标注能力,组织能够快速…

作者头像 李华
网站建设 2026/5/20 22:18:51

uni-ui组件库终极指南:快速上手跨端开发

uni-ui组件库终极指南:快速上手跨端开发 【免费下载链接】uni-ui 基于uni-app的、全端兼容的、高性能UI框架 项目地址: https://gitcode.com/dcloud/uni-ui uni-ui组件库是DCloud官方推出的基于uni-app框架的高性能UI组件库,专为跨端应用开发设计…

作者头像 李华
网站建设 2026/5/26 3:13:28

npm-stat.com终极指南:快速洞察npm包生态数据

你是否曾经在茫茫npm海洋中迷失方向?面对数百万个包,如何判断哪个才是真正靠谱的选择?npm-stat.com这个强大的npm包下载统计工具,就像给你装上了一副数据分析的"洞察工具",让你能够一眼看穿每个包的真实流行…

作者头像 李华
网站建设 2026/5/29 17:19:03

触摸屏校准新手指南:ITS Tool V1.0.4.3深度解析

触摸屏校准新手指南:ITS Tool V1.0.4.3深度解析 【免费下载链接】触摸屏校准测试软件ITSToolV1.0.4.3 触摸屏校准测试软件ITS Tool V1.0.4.3是一款专业工具,专为电容触摸屏的参数设置与校准测试设计。通过该软件,用户可以轻松调整触摸屏的各项…

作者头像 李华
网站建设 2026/5/30 8:02:59

基于STM32的FreeModbus主站设计完整指南

手把手教你用STM32打造工业级Modbus主站系统你有没有遇到过这样的场景:现场一堆传感器、电表、变频器都支持Modbus协议,但各自为政,数据分散,上位机想统一采集却无从下手?这时候,一个能主动“问话”的Modbu…

作者头像 李华
网站建设 2026/5/30 1:47:28

区块链公益信任革命:如何用去中心化技术重塑慈善生态

你是否曾想过,每一笔善款都能像数字指纹一样被永久记录,从捐赠者钱包直达受助人账户,全程透明可追溯?当传统慈善机构因资金流向不透明而面临信任危机时,区块链技术正在悄然改变公益行业的游戏规则。这个开源项目通过Py…

作者头像 李华