温馨提示×

centos反引号历史来源

小樊
46
2026-10-12 04:22:16
栏目: 智能运维

在 CentOS(以及整个 Linux/Unix shell 环境)中,**反引号(` `,backtick)**并不是 CentOS 特有的东西,而是来自 Unix shell 的历史演进。下面按时间线说明它的来源和背景。


1. 反引号最早来自 Bourne Shell

反引号用于命令替换(command substitution),最早出现在:

  • 1970 年代:AT&T 的 Unix
  • Stephen Bourne 开发的 Bourne Shell(sh)

示例(最原始写法):

today=`date`

含义:先执行 date,再把输出结果替换到原位置。

✅ 所以反引号是 Unix 传统,不是 CentOS 发明的。


2. CentOS 为什么还有反引号?

CentOS 使用的是:

  • bash(Bourne Again Shell)
  • bash 为了兼容 Bourne Shell,保留了反引号语法

因此你在 CentOS 中看到的:

result=`ls -l`

是 历史兼容性 的产物。


3. 后来为什么有了 $()?

1980–1990 年代,Korn Shell(ksh)引入了更清晰的写法:

result=$(ls -l)

优点包括:

  • 可读性更好
  • 支持嵌套
  • 不容易和单引号混淆

后来:

  • bash
  • CentOS 默认 shell 都支持 $()

4. 反引号 vs $() 对比

# 反引号(老式)
a=`echo hello`

# 新写法(推荐)
a=$(echo hello)

嵌套对比:

# 反引号(难读)
a=`echo \`date\``

# $()(清晰)
a=$(echo $(date))

5. 总结一句话

CentOS 中的反引号来自 Unix 的 Bourne Shell,是命令替换的历史写法;CentOS 只是继承并兼容它。

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

  • 反引号在脚本中的坑
  • 为什么新项目不建议用反引号
  • CentOS 不同版本 shell 差异

0 踩