温馨提示×

CentOS为何要用反引号

小樊
33
2026-08-30 23:06:26
栏目: 智能运维

CentOS(以及绝大多数 Linux/Unix Shell) 里,反引号 ` 并不是 CentOS 本身的特性,而是 Shell(通常是 bash) 提供的功能,用来做 命令替换(Command Substitution)


一、反引号的作用是什么?

反引号的作用是:

先把反引号里的内容当作命令执行,然后把命令的输出结果替换到原来位置

示例

echo "当前时间是: `date`"

执行过程:

  1. Shell 先执行 date
  2. date 的输出(如 2026-01-15 10:30:00)替换到原位置
  3. 最终执行:
echo "当前时间是: 2026-01-15 10:30:00"

二、为什么 CentOS 会用到反引号?

CentOS 默认使用 bash,而反引号是 传统 sh / bash 支持的语法,因此:

  • CentOS 脚本中常见反引号
  • 很多老脚本、教程、运维文档都使用它
  • 系统初始化脚本、老项目代码里非常普遍

三、反引号 vs $()(更推荐)

反引号本质上和 $() 是一样的功能:

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

推荐用 $() 的原因:

对比项 反引号 `cmd` $()
可读性
嵌套 困难 容易
现代 Shell 推荐 ✅ 是

嵌套示例对比

❌ 反引号(难读):

echo `echo \`date\``

$()(清晰):

echo $(echo $(date))

四、反引号仍然存在的几个原因

  1. 历史兼容性

    • 反引号出现早于 $()
    • 很多老脚本为了兼容 Bourne Shell(sh)而使用
  2. 系统脚本习惯

    • CentOS 中很多 /etc/init.d/* 脚本写于 10 年前
  3. 书写简单(短脚本)

    • 对于简单命令,反引号写起来快

五、什么时候该用反引号?

可以用,但不推荐新代码使用

  • 老脚本维护 ✅
  • 快速临时命令 ✅
  • 新脚本 / 自动化 / CI ✅❌ 建议用 $()

六、一句话总结

CentOS 用反引号不是因为它特殊,而是因为 bash 支持命令替换;反引号是老语法,功能等同于 $(),但可读性更差,现代脚本应优先使用 $()

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

  • 把一段老脚本里的反引号改成 $()
  • 解释某个具体 CentOS 脚本里的反引号用法

0