在 CentOS(以及其它 Linux 发行版、类 Unix 系统)里,反引号(`)用于命令替换(Command Substitution),也就是:
先执行反引号里的命令,再把命令的输出结果替换到原位置。
`命令`
系统会:
echo `pwd`
等价于:
echo $(pwd)
echo `whoami`
输出:
root
(取决于你当前登录的用户)
now=`date`
echo "当前时间是:$now"
$()(推荐)现代 Shell(bash)更推荐用 $(),可读性更好,也支持嵌套:
# 反引号(旧写法)
echo `ls \`pwd\``
# $()(推荐写法)
echo $(ls $(pwd))
echo `ls`
会列出当前目录内容。
错误输出不会显示:
`ls /not/exist`
错误会直接打印到终端,但不会被赋值或 echo 出来。
echo `echo \`date\``
容易写错,推荐用 $()。
#!/bin/bash
ip=`hostname -I`
echo "本机IP是:$ip"
如果你是想问:
可以告诉我具体场景,我可以给你更针对性的示例。