温馨提示×

centos反引号历史由来是什么

小樊
47
2026-10-23 22:07:55
栏目: 智能运维

在 CentOS(以及所有 Unix/Linux 系统)中,反引号(` `,也称 backtick)本身并不是 CentOS 特有的,而是来自 Unix shell 的历史设计。下面按“是什么 → 怎么来的 → 为什么在 CentOS 里看到”来说明。


1. 反引号是什么

在 shell 中,反引号用于命令替换(command substitution):

echo "当前时间: `date`"

等价于:

echo "当前时间: $(date)"

反引号里的命令会先执行,结果替换到原位置。


2. 历史由来(为什么用反引号)

来自早期 Unix(1970s)

  • 反引号作为命令替换的语法,最早出现在 Bell Labs 的 Unix shell(Thompson shell / Bourne shell) 中。
  • 当时键盘上:
    • 没有 $() 这种清晰语法
    • 反引号按键存在且容易输入
    • shell 解析器用“反引号成对出现”来识别命令边界

所以 Bourne shell(sh)确立了反引号语法。


3. 后来的演变

$(...) 的出现

  • 在 Korn shell(ksh) 和后来的 POSIX shell / bash 中,引入了更清晰的:
    $(command)
    
  • 优点:
    • 可嵌套
    • 可读性更好
    • 不易与单引号混淆

但反引号被保留以兼容老脚本。


4. CentOS 为什么还能看到反引号?

CentOS 的情况:

  • 使用 bash(Bourne Again Shell)
  • bash 完全兼容 Bourne shell
  • 大量:
    • 老系统脚本
    • RPM 打包脚本
    • 运维历史脚本 仍然使用反引号

因此你在 CentOS 中“常见反引号”,不是 CentOS 发明的,而是Unix shell 传统的延续。


5. 现在的最佳实践

在现代 CentOS / Linux 中:

  • ✅ 推荐:
    $(command)
    
  • ⚠️ 反引号:
    • 仅用于兼容旧脚本
    • 不建议新写

一句话总结

反引号不是 CentOS 特有的,而是 Unix / Bourne shell 的历史遗留语法,CentOS 因为兼容 bash/sh 而一直保留并使用它。

如果你愿意,我也可以讲:

  • 反引号 vs $() 的嵌套示例
  • CentOS 启动脚本里哪里常见反引号
  • 为什么反引号容易出 bug

0 踩