在 CentOS(以及一般的 Linux / Unix shell 环境) 中,**反引号(` `,backtick)**最常见的用途是 命令替换(Command Substitution)。
下面按“常见场景”给你系统说明。
反引号用于 把命令的输出结果替换到当前位置。
echo "今天日期是 `date`"
等价于:
echo "今天日期是 $(date)"
now=`date +%Y%m%d`
echo $now
在 CentOS 的 bash / sh 脚本 中非常常见,尤其是老脚本。
files=`ls *.log`
for f in $files; do
echo "处理文件: $f"
done
⚠️ 现代写法推荐用 $(...),可读性更好,且支持嵌套。
hostname=`hostname`
ip=`ip addr | grep 'inet ' | awk '{print $2}'`
0 2 * * * /backup.sh `date +%F`
有些旧文档、Makefile、启动脚本中会看到:
VERSION=`cat VERSION`
$()(重点)| 写法 | 推荐度 | 说明 |
|---|---|---|
| `command` | ❌ 老旧 | 兼容性好,但难读 |
| $(command) | ✅ 推荐 | 可读性强,支持嵌套 |
嵌套示例:
echo $(echo $(pwd))
反引号写起来很痛苦:
echo `echo \`pwd\``
a=`ls
echo`
会报错或行为异常。
在 CentOS 中,反引号最常见于 Shell 命令替换,尤其出现在脚本、运维命令、老系统中,但现在更推荐使用
$(...)。
如果你是:
$() 的区别实战可以把内容贴出来,我可以帮你逐行分析。