Shell 中的冒号什么也不做,但你仍然应该用它
来源:refp.se — 2026-07-27
📋 概述
这篇短文揭示了 POSIX Shell 中冒号命令(`:`)的巧妙用途:它作为内置的空操作符,看起来什么也不做,却是编写健壮 Shell 脚本的秘密武器。从占位符到变量默认值、从无限循环到调试技巧,冒号的妙用远超表面上的「什么都不做」。
🔑 核心要点
- `:` 是 POSIX 规定的内置空命令,始终返回退出码 0,比 `true` 更快(不需要外部调用)。
- 核心用途之一是变量默认值扩展:`${VAR:=default}` 可在不执行任何实际命令的情况下设置默认值。
- 可以创造无限循环:`while :; do ...; done` 是 Shell 中最简洁的永久循环写法。
- 进阶用法:`:` 作为参数展开的副作用容器——在不产生任何输出或副作用的情况下触发展开逻辑。
💡 金句
最优雅的工具往往是那些什么也不做但让一切井井有条的东西——Shell 冒号是代码世界中「无为而治」的典范。
👍 0
👎 0
← 返回 HN 首页