10 hours ago
- 使用参数扩展`${1:?错误信息}`时,单个冒号可替代多行代码来检查必需参数,若变量未设置或为空则输出诊断信息并退出。
- 空命令`:`会计算其参数但丢弃结果,从而实现副作用如设置默认值、截断文件或检查文件的可读/可写性。
- 冒号的历史根源可追溯至1971年Thompson shell,当时用作标签和注释标记。
- 冒号的其他用途包括:设置默认值(`: "${VAR:=value}"`)、截断文件(`: > file`)、检查文件访问(`(: < file) && echo YES`)以及为`trap`提供命令。
- 与传统赋值模式相比,空命令结合参数扩展能减少输入量并降低潜在打字错误。