您的位置:首页 > 运维架构 > Shell

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

2017-06-15 16:18 567 查看
一、命令代换(命令替换)

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

简单例子:

DATE=`date`

echo $DATE

 DATE=$(date)

  echo $DATE



执行结果:



二、优缺点:

1、反引号的缺点

1).它比较陈旧。 

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

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



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

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

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

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

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

2、$()

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

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

但是 $( ) 并不见的每一种 shell 都能使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: