在 CentOS(以及所有 Linux/Unix shell)里,反引号(` `) 的作用是命令替换(command substitution),例如:
echo `date`
$() 替换反引号现代 shell(bash、sh、zsh)都支持 $(),功能一样但更易读、可嵌套:
echo $(date)
嵌套示例(反引号很难写):
echo $(echo $(date))
如果你有很多旧脚本想替换:
sed -i 's/`/$(/g' script.sh
⚠️ 注意:这会把开始和结束的反引号都换成 $(,不安全,仅示意。
更安全的做法是手动替换或使用支持配对替换的编辑器(如 Vim)。
使用单引号:
echo '今天用了 `date` 命令'
或用转义:
echo "今天用了 \`date\` 命令"
反引号在正则里不是特殊字符,但 shell 会解释:
grep '`' file.txt
例如:
var="`date`"
想换成:
var="$(date)"
用 sed:
echo "$var" | sed 's/`/$(/g'
| 场景 | 建议 |
|---|---|
| 新写脚本 | 用 $( ) |
| 老脚本维护 | 手动替换为 $( ) |
| 只显示反引号 | 单引号或 \ |
| 批量改 | 编辑器 / sed(小心) |
如果你能补充:
我可以给你更精确的命令。