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:多模式匹配,支持|和通配符
关联
- 前驱:Shell 编程 1
- 后续:Shell 编程 3(循环)、Shell 编程 5(grep 正则)
- 相关概念:Shell 文本三剑客(grep / sed / awk 详解)