Shell 编程 2 — 字符串操作、运算符、正则、if/case

概述

Day21 深入 Shell 字符串处理(切片、截断、替换、变量替代)、运算符体系(算术/文件/字符串/数值/关系/赋值)、正则表达式与元字符、if 条件判断和 case 多分支结构。

核心内容

字符串操作

  • ${#var} 长度,${var:offset:len} 切片
  • 截断:#(去前缀短匹配)、##(去前缀长匹配)、%/%%(后缀)
  • 替换:/old/new(第一个)、//old/new(全部)
  • 变量替代::-(默认值)、:=(赋值默认)、:?(空值报错)

运算符

  • 算术:$((...)),浮点用 bc
  • 文件测试:-f-d-r-w-x-s
  • 字符串测试:=!=-z-n
  • 数值测试:-eq-ne-gt-lt-ge-le
  • 关系:&&||!(推荐 [[ ]] 中使用)

正则与流程控制

  • BRE vs ERE 差异:?+|(){} 在 ERE 中无需转义
  • if:单/双/多分支
  • case:多模式匹配,支持 | 和通配符

关联