在 CentOS(以及大多数 Linux 发行版) 中,反引号“`” 主要用于 命令替换(Command Substitution),也就是把命令的执行结果当作字符串使用。
反引号是键盘上 Esc 键下方、数字 1 左边的那个键(和 ~ 同一个键)。
echo "当前时间是: `date`"
执行结果类似:
当前时间是: Thu Jun 27 10:30:12 CST 2024
等价于(推荐写法):
echo "当前时间是: $(date)"
files=`ls`
echo $files
或(推荐):
files=$(ls)
#!/bin/bash
ip=`hostname -I`
echo "本机IP是: $ip"
cd `dirname /home/user/test.txt`
pwd
$()(重要)| 写法 | 是否推荐 | 原因 |
|---|---|---|
`command` |
❌ 不推荐 | 可读性差,嵌套麻烦 |
$(command) |
✅ 推荐 | 可读性好,支持嵌套 |
echo $(ls $(pwd))
如果用反引号写嵌套会非常混乱:
echo `ls \`pwd\``
CentOS 7/8 默认使用 bash,反引号在 bash、sh 中都能正常使用。
查看当前 shell:
echo $SHELL
~ 和 ` 是同一个键#!/bin/bash#!/bin/bash
result=`uname -r`
echo $result
❌ 忘了闭合反引号:
echo `date
✅ 正确:
echo `date`
在 CentOS 中,反引号用于执行命令并获取其输出,但更推荐使用
$(命令)的方式。
如果你有具体场景(比如 写脚本 / 定时任务 / 判断条件 / 配合 awk/sed),可以贴出来,我可以帮你具体写示例。