在 CentOS(即 Linux 的 Bash 环境) 中,反引号(`)用于命令替换,本身不支持直接换行写命令,但可以用下面几种方式实现“换行”效果。
反引号里不能直接回车换行,但可以用 反斜杠 \ 续行:
result=`ls -l \
/etc \
/var`
等价于:
result=`ls -l /etc /var`
✅ 推荐写法
$() 替代反引号(更现代 ✅✅)CentOS / Bash 中强烈建议用 $(),它支持直接换行:
result=$(ls -l \
/etc \
/var)
甚至这样也可以:
result=$(
ls -l
du -sh /var
)
✅ 可读性好
✅ 支持嵌套
✅ 不容易出错
result=`
ls -l
du -sh /var
`
⚠️ 虽然“可能”能用,但:
| 方式 | 是否推荐 | 说明 |
|---|---|---|
反引号 + \ |
✅ | 可以 |
$() + 换行 |
✅✅✅ | 最佳 |
| 反引号直接换行 | ❌ | 不推荐 |
如果你是在 写脚本 / Makefile / cron / systemd 中遇到问题,可以告诉我具体场景,我可以给你更合适的写法。