Bash 不是编程语言,它是一台文本替换引擎
来源:dev.to — 2026-10-07
📋 概述
在终端里敲下 x = 10 会得到 command not found,这让习惯 Python 或 JavaScript 的人感觉自己被冒犯了。作者给出一个能改变一切的心智模型:Bash 不是你以为的那种编程语言,而是一台把 Unix 进程粘起来的文本替换宏引擎。理解词分割、展开管线、子 shell 失忆和退出码被吞这些机制之后,所有语法怪癖都不再是玄学,而是有理可循的必然。
🔑 核心要点
- 赋值中空格致命,因为 shell 先按空格分割出命令名,x 被当成了要执行的程序。
- 参数展开发生在命令执行之前,引号决定展开结果是否会被再次分词。
- 子 shell 里对变量的修改不会回到父 shell,退出码也可能被静默吞掉。
- 写脚本要显式加上 set -euo pipefail 之类的护栏,避免自动化在凌晨两点静默失败。
💡 金句
Bash 不是你以为的那种编程语言,它是一台把 Unix 进程粘在一起的文本替换宏引擎。
👍 0
👎 0
← 返回 Dev.to 首页