一、命令代换(命令替换)
由 ` ` 或 $() 括起来的也是一条命令,shell先执行该命令,再将结果立刻代换到当前命令行中。
简单例子:
DATE=`date`
echo $DATE
DATE=$(date)
echo $DATE
执行结果:
二、优缺点:
1、反引号的缺点
1).它比较陈旧。
2).非常容易和单引号混淆。
3).它会对\进行跳脱处理。而$()不会。
结果分析:我们知道,shell里的单引号会保持所有字符的字面值;
正确的的执行结果应该是: \ \
实际上用反引号输出的结果却是: \
这就是由于它对 \ 进行了跳脱处理。
总结:所以,一般情况下建议使用$(),这样比较直观,但是它也有它的缺点,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。也就是说移植性不如反引号
2、$()
1)以$(command) 的形式可以互相嵌套多个命令扩展。
2)反引号基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。
但是 $( ) 并不见的每一种 shell 都能使用