在 CentOS(以及绝大多数 Linux 发行版) 中,反引号( ) 主要用于 命令替换(Command Substitution),也就是把命令的执行结果当作字符串使用。
反引号是键盘上 数字 1 左边、Tab 上方 的那个符号:
`
示例:
`command`
today=`date`
echo $today
等价于(推荐写法):
today=$(date)
echo $today
echo "当前时间是 `date`"
输出示例:
当前时间是 2026年 1月15日 星期一 10:30:00 CST
#!/bin/bash
files=`ls`
echo "当前目录下的文件有:"
echo "$files"
$()(重要)| 写法 | 是否推荐 | 说明 |
|---|---|---|
`command` |
❌ 不推荐 | 老写法,可读性差 |
$(command) |
✅ 推荐 | 新写法,支持嵌套 |
❌ 难读:
echo `echo \`date\``
✅ 推荐:
echo $(echo $(date))
os=`cat /etc/centos-release`
echo $os
if which nginx >/dev/null 2>&1; then
echo "nginx 已安装"
fi
backup_file="backup-`date +%Y%m%d`.tar.gz"
echo $backup_file
echo `date
会一直等待输入,直到你输入 ` 或 Ctrl+C
'date' # 这是字符串,不会执行命令
`date` # 这才是命令替换
✅ 在 CentOS 中反引号用于 执行命令并获取结果
✅ 新脚本 推荐使用 $(command)
✅ 反引号容易出错,主要用于兼容老脚本
如果你愿意,我也可以帮你 把现有脚本里的反引号统一改成 $(),或者讲 反引号在 crontab / systemd / awk 里的坑。