九、管道与重定向
本章是 Shell 的"数据流水线"核心,也是高频出错区。重点讲清重定向的求值顺序、cmd 2>&1 >file 与 cmd >file 2>&1 的天壤之别、管道的退出状态与 pipefail、管道子 Shell 导致的变量丢失,以及 SIGPIPE。
本章目录
学习目标(对应 Prompt 强制项)
- 掌握 FD 0/1/2 与自定义 FD 的重定向与
exec用法。 - 说清
cmd >file 2>&1与cmd 2>&1 >file的差异(实测对照)。 - 理解管道两端的进程关系、缓冲与背压;掌握管道退出状态与
pipefail的非 POSIX 性。 - 识别管道循环中的子 Shell 变量丢失,并会用重定向/进程替换修复。
- 理解 SIGPIPE、消费者提前退出与 Here Document 的引用/缩进/展开。
- 会分别验证 stdout、stderr 与退出状态。
