温馨提示×

CentOS反引号能做什么用

小樊
34
2026-08-04 20:25:33
栏目: 智能运维

CentOS(以及大多数 Linux/Unix Shell) 中,反引号(`) 的作用是 命令替换(Command Substitution)


一、反引号的核心作用

反引号会把其中的命令先执行,然后用命令的输出结果替换掉整个反引号部分。

语法:

`命令`

等价于(更推荐):

$(命令)

二、常见用法示例

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

today=`date`
echo $today

等价于:

today=$(date)

2️⃣ 在命令中嵌套使用

echo "当前目录是 `pwd`"

输出类似:

当前目录是 /home/user

3️⃣ 用于文件、目录操作

touch `date +%Y%m%d`.log

会创建类似:

20260121.log

4️⃣ 在脚本中动态获取值

files=`ls`
echo $files

⚠️ 注意:这种方式不适合处理带空格的文件名,推荐用 $(ls)find -print0


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

对比项 反引号 ` ` $()
可读性 较差 ✅ 更好
嵌套支持 ❌ 不方便 ✅ 支持
推荐使用

现代 Shell 脚本推荐使用 $(命令)

嵌套示例:

echo "$(ls $(pwd))"

反引号嵌套(不推荐):

echo "`ls \`pwd\``"

四、常见误区

❌ 反引号不是单引号

'date'   # 原样输出字符串
`date`   # 执行命令

❌ 反引号内不要随意加空格

` date `   # 可能报错或行为异常

五、适用 Shell

反引号在以下 Shell 中都有效:

  • bash
  • sh
  • zsh
  • ksh

CentOS 默认 shell 是 bash,完全支持。


✅ 总结一句话

CentOS 中的反引号用于“命令替换”,即先执行命令,再用输出结果参与后续命令执行。

如果你愿意,我也可以帮你对比 反引号 / $() / eval / xargs 的使用场景。

0