Linux: shell 中命令代换 $() 和 ``(有图有代码有真相!!!)

来源:互联网 发布:积分返利商城源码 编辑:程序博客网 时间:2024/06/01 09:41

一、命令代换(命令替换)

` ` 或  $() 括起来的也是一条命令,shell先执行该命令,再将结果立刻代换到当前命令行中。

简单例子:


DATE=`date`
echo $DATE


 DATE=$(date)

  echo $DATE


执行结果:




二、优缺点:

1、反引号的缺点

1).它比较陈旧。 

2).非常容易和单引号混淆。 

3).它会对\进行跳脱处理。而$()不会。 


结果分析:我们知道,shell里的单引号会保持所有字符的字面值;

正确的的执行结果应该是:    \ \ 

实际上用反引号输出的结果却是:   \   

这就是由于它对 \ 进行了跳脱处理。


总结:所以,一般情况下建议使用$(),这样比较直观,但是它也有它的缺点,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。也就是说移植性不如反引号


2、$()

1)以$(command) 的形式可以互相嵌套多个命令扩展。

2)反引号基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。

但是 $( ) 并不见的每一种 shell 都能使用

阅读全文
0 0
原创粉丝点击