在 CentOS(以及所有 Linux/Unix shell)里,反引号(` `)和单引号(’ ')、双引号(" ")是完全不同的东西,核心区别在于:反引号用于“命令替换”。
下面分点说明。
反引号里写的是命令,shell 会先执行它,再把输出结果替换进去。
echo `date`
等价于:
echo $(date)
✅ 反引号里是命令 ❌ 不是字符串
单引号里的内容原样输出,不会解析变量、不会执行命令。
echo '当前时间是 `date`'
输出:
当前时间是 `date`
✅ 完全原样 ❌ 不执行命令
双引号里:
$() 或反引号)echo "当前时间是 `date`"
输出示例:
当前时间是 2026年 1月15日 10:00:00
在 CentOS / bash 中:
| 写法 | 是否推荐 | 说明 |
|---|---|---|
| `命令` | ❌ 旧式 | 可读性差,嵌套麻烦 |
| $(命令) | ✅ 推荐 | 清晰、可嵌套 |
嵌套示例:
# 反引号(难看)
echo `echo \`date\``
# $()(清晰)
echo $(echo $(date))
❌ 反引号 = 引号
✅ 反引号 = 执行命令
一句话记住:
反引号是“跑命令”,引号是“包字符串”
如果你愿意,我也可以结合 CentOS 脚本示例 或 bash/sh 区别 再讲细一点。