在 CentOS(以及其它 Linux 发行版、类 Unix 系统)里,反引号(` `)用于命令替换(command substitution),也就是“先执行反引号里的命令,再把输出结果放到原位置”。
`命令`
today=`date`
echo $today
等价于:
today=$(date)
echo $today
echo "当前用户是 `whoami`"
输出类似:
当前用户是 root
ls `pwd`
表示:先执行 pwd,再把结果作为 ls 的参数。
| 写法 | 是否推荐 | 说明 |
|---|---|---|
| `command` | 旧写法 | 所有 shell 都支持 |
| $(command) | ✅ 推荐 | 可读性更好,支持嵌套 |
echo `echo \`date\``
echo $(echo $(date))
#!/bin/bash
ip=`hostname -I`
echo "本机IP是:$ip"
'date' # 这是字符串,不会执行
echo `date # 错误
$(命令)如果你有具体命令或脚本场景,我可以帮你直接改。