高级特性

掌握了 Shell 的基础知识后,一些高级特性可以让脚本更简洁、更高效。正则表达式、通配符、命令替换、参数展开等特性,是进阶 Shell 编程的必备技能。

正则表达式

正则表达式是文本匹配的利器。grep、sed、awk 都支持正则,掌握正则表达式,就能灵活处理各种文本匹配需求。从简单的字符匹配到复杂的模式提取,正则表达式提供了强大的表达能力。

通配符与扩展

通配符用于匹配文件名,是 Shell 最常用的功能之一。* 匹配任意字符,? 匹配单个字符,[] 匹配字符集合。Bash 还提供了花括号扩展、波浪号扩展等高级功能,让文件操作更便捷。

命令替换

命令替换可以把一个命令的输出作为另一个命令的参数。用 $() 或反引号包裹命令,就能把命令结果赋值给变量或传递给其他命令。这是脚本中动态获取信息的常用方式。

算术扩展

Shell 可以进行整数运算,$(( )) 是推荐的算术扩展语法。支持加减乘除、取余、位运算等操作。虽然不能处理浮点数,但对于计数、索引、状态判断等场景已经足够。

Here Document

Here Document 用于在脚本中嵌入多行文本。比多次 echo 更清晰,适合生成配置文件、发送邮件内容等场景。配合变量替换,可以动态生成格式化的文本内容。

参数展开

参数展开是 Shell 变量处理的核心机制。除了基本的 ${var},还有默认值设置、字符串截取、替换、大小写转换等高级用法。熟练掌握参数展开,能让脚本更简洁高效。

本章内容

这一章我们学习:

  • 正则表达式:基本语法、扩展正则、在 grep 和 sed 中的应用
  • 通配符与扩展:通配符、花括号扩展、波浪号扩展
  • 命令替换$() 语法、嵌套使用、常见场景
  • 算术扩展$(( )) 语法、运算符、自增自减
  • Here Document:基本语法、变量替换、避免替换
  • 参数展开:默认值、字符串操作、变量间接引用

掌握这些高级特性,能让脚本更简洁、更高效、更易维护。