温馨提示×

CentOS反引号怎么使用

小樊
36
2026-08-30 23:04:27
栏目: 智能运维

CentOS(以及绝大多数 Linux Shell,如 bash) 中,反引号 ` ` 用来 执行命令替换(Command Substitution)


一、反引号的作用

把命令的执行结果作为字符串返回,并参与当前命令。

`命令`

等价于(更推荐):

$(命令)

二、基本用法示例

1️⃣ 保存命令结果到变量

time=`date`
echo $time

执行过程:

  1. 先执行 date
  2. 把输出结果赋值给变量 time

结果是当前时间,例如:

2026年 01月 15日 星期四 10:30:00 CST

✅ 推荐写法(可读性更好):

time=$(date)

2️⃣ 在命令中直接使用

echo "当前时间是:`date`"

输出:

当前时间是:2026年 01月 15日 星期四 10:30:00 CST

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

files=`ls`
echo "$files"

或:

for f in `ls`; do
  echo "$f"
done

⚠️ 注意:如果文件名包含空格,这种写法不够安全,推荐使用:

for f in *; do
  echo "$f"
done

三、反引号 vs $()

写法 说明
`cmd` 老式写法,兼容性好
$(cmd) 新写法,推荐,支持嵌套

嵌套示例(反引号不支持)

❌ 反引号写法(不推荐):

echo `echo \`date\``

✅ 推荐写法:

echo $(echo $(date))

四、常见使用场景

✅ 获取系统信息

os=`uname -a`
echo $os

✅ 判断命令是否存在

if which nginx >/dev/null 2>&1; then
  echo "nginx 已安装"
fi

✅ 在脚本中生成文件名

filename="backup_$(date +%Y%m%d).tar.gz"

五、注意事项(避坑)

  1. 反引号不能使用多层嵌套
  2. 容易和单引号混淆(反引号是 `,不是 '
  3. 不要在变量赋值两边加空格
    a=`date`   ✅
    a = `date` ❌
    

六、总结一句话

CentOS 中的反引号 `命令` 用来执行命令并把结果返回,但在现代脚本中更推荐使用 $(命令)

如果你有 具体脚本场景(比如备份、判断、循环),我可以帮你直接写示例。

0