本人Linux新手一枚,所以对$()和``的用法有点困惑,很多文章说这两是一样的
但测试下来还是有不同地方
个人认为$()逻辑层次比较清晰
``和$()在转义字符\的使用上有很大不一样
例如:
echo $(echo \\\\\\$SHELL)
结果会显示:\\\/bin/bash
但,echo `echo \\\\\\$SHELL`
结果会显示:\/bin/bash
原因个人觉得:``里的一个\不能算转义字符,而是要两个成为一组时才能合并成一个转义字符来看待,
echo `echo \$SHELL`的结果和echo `echo $SHELL`一样,都是/bin/bash
这些通过
echo `echo \\\\\\\\$SHELL` 等同于4个转义字符,结果是\\/bin/bash,这个结果和echo $(echo \\\\$SHELL)是一样的,在$(),一个\等于一个转义字符
如有疏漏或错误,请各位大侠指出不足之处,谢谢
本文出自 “101010...010101” 博客,请务必保留此出处http://legendland.blog.51cto.com/2043145/1951783
原文:http://legendland.blog.51cto.com/2043145/1951783