温馨提示×

怎么在CentOS使用反引号

小樊
37
2026-08-04 20:23:34
栏目: 智能运维

CentOS(以及绝大多数 Linux 发行版) 中,反引号( 主要用于 命令替换(Command Substitution),也就是把命令的执行结果当作字符串使用。


一、什么是反引号

反引号是键盘上 数字 1 左边、Tab 上方 的那个符号:

`

示例:

`command`

二、基本用法(命令替换)

1️⃣ 把命令结果赋值给变量

today=`date`
echo $today

等价于(推荐写法):

today=$(date)
echo $today

2️⃣ 在字符串中使用

echo "当前时间是 `date`"

输出示例:

当前时间是 2026年 1月15日 星期一 10:30:00 CST

3️⃣ 在脚本中使用

#!/bin/bash
files=`ls`
echo "当前目录下的文件有:"
echo "$files"

三、反引号 vs $()(重要)

写法 是否推荐 说明
`command` ❌ 不推荐 老写法,可读性差
$(command) ✅ 推荐 新写法,支持嵌套

嵌套示例(反引号很难写)

❌ 难读:

echo `echo \`date\``

✅ 推荐:

echo $(echo $(date))

四、常见使用场景

1️⃣ 获取系统信息

os=`cat /etc/centos-release`
echo $os

2️⃣ 判断命令是否存在

if which nginx >/dev/null 2>&1; then
    echo "nginx 已安装"
fi

3️⃣ 在脚本中动态生成参数

backup_file="backup-`date +%Y%m%d`.tar.gz"
echo $backup_file

五、常见错误

❌ 忘记闭合反引号

echo `date

会一直等待输入,直到你输入 `Ctrl+C

❌ 把单引号当成反引号

'date'   # 这是字符串,不会执行命令
`date`   # 这才是命令替换

六、总结

✅ 在 CentOS 中反引号用于 执行命令并获取结果
✅ 新脚本 推荐使用 $(command)
✅ 反引号容易出错,主要用于兼容老脚本

如果你愿意,我也可以帮你 把现有脚本里的反引号统一改成 $(),或者讲 反引号在 crontab / systemd / awk 里的坑

0