在 CentOS(以及绝大多数 Linux Shell,如 bash) 中,反引号 ` ` 用来 执行命令替换(Command Substitution)。
把命令的执行结果作为字符串返回,并参与当前命令。
`命令`
等价于(更推荐):
$(命令)
time=`date`
echo $time
执行过程:
datetime结果是当前时间,例如:
2026年 01月 15日 星期四 10:30:00 CST
✅ 推荐写法(可读性更好):
time=$(date)
echo "当前时间是:`date`"
输出:
当前时间是:2026年 01月 15日 星期四 10:30:00 CST
files=`ls`
echo "$files"
或:
for f in `ls`; do
echo "$f"
done
⚠️ 注意:如果文件名包含空格,这种写法不够安全,推荐使用:
for f in *; do
echo "$f"
done
| 写法 | 说明 |
|---|---|
`cmd` |
老式写法,兼容性好 |
$(cmd) |
新写法,推荐,支持嵌套 |
❌ 反引号写法(不推荐):
echo `echo \`date\``
✅ 推荐写法:
echo $(echo $(date))
os=`uname -a`
echo $os
if which nginx >/dev/null 2>&1; then
echo "nginx 已安装"
fi
filename="backup_$(date +%Y%m%d).tar.gz"
`,不是 ')a=`date` ✅
a = `date` ❌
CentOS 中的反引号
`命令`用来执行命令并把结果返回,但在现代脚本中更推荐使用$(命令)。
如果你有 具体脚本场景(比如备份、判断、循环),我可以帮你直接写示例。