Shell 编程 5 — trap 信号捕获、Expect 自动交互、grep 与正则
概述
Day24 覆盖三大块:trap 信号捕获实现脚本优雅退出、Expect 自动化交互工具(spawn/expect/send)实现密钥批量分发、grep 三种变体及正则表达式深度讲解。
核心内容
trap 信号捕获
trap '命令' 信号列表:捕获中断信号执行清理EXIT信号:脚本退出时自动触发(无论正常/异常)SIGKILL(9)无法被捕获
Expect 自动化交互
- 三步模式:
spawn(启动进程)→expect(等待输出)→send(发送输入) exp_continue:多模式连续匹配interact:将控制权交还用户(半自动化)- 批量 SSH 密钥分发:Shell 循环 + Expect 自动化
grep 与正则
grep(基础正则)、egrep/grep -E(扩展正则)、fgrep/grep -F(固定字符串)- 元字符:
.、*、[]、^、$、\、\{n,m\} - ERE 扩展:
?、+、|、()、{} - 高效正则原则:锚定边界、使用字符集合、避免过度贪婪
关联
- 前驱:Shell 编程 4
- 后续:Shell 编程 6(sed、awk)
- 相关概念:信号(进程控制(下))、SSH 密钥认证(重要服务)