免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 13054 | 回复: 47
打印 上一主题 下一主题

``,$()区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-21 13:03 |只看该作者 |倒序浏览
echo `echo \\`
echo $(echo \\)
为什么打印结果不同?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2009-03-21 13:22 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2009-03-21 17:13 |只看该作者
各shell版本中内置echo命令的默认选项是不同的

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2009-03-23 12:20 |只看该作者
看来两者是不等价的

论坛徽章:
0
5 [报告]
发表于 2009-03-23 12:23 |只看该作者
Shell十三问。

论坛徽章:
0
6 [报告]
发表于 2009-03-23 12:55 |只看该作者

回复 #1 lseeo 的帖子

使用$()显然比``优越,这是因为:
其一,前者更易读,不会产生歧义。而反引号`常常被初学者当成单引号';
其二,前者嵌套时更简单,直接使用就行。而后者嵌套时内部的反引号必须用\转义;
其三,它们对反斜杠\的处理不一样,在$()中可以减少转义的麻烦。而这一点与第二点是前因后果的关系。正是因为$()嵌套时不需转义,所以\在$()中就不需要作为一个特殊字符了。而``中的\必须是特殊字符,否则就无法嵌套使用了。

论坛徽章:
0
7 [报告]
发表于 2009-03-23 12:58 |只看该作者
如果讲通用性及可移植性的话。还是前面的好。

论坛徽章:
0
8 [报告]
发表于 2009-03-23 13:18 |只看该作者
原帖由 waker 于 2009-3-21 13:22 发表
嗟,来食!

http://bbs.chinaunix.net/viewthread.php?tid=686286

论坛徽章:
0
9 [报告]
发表于 2009-03-23 13:56 |只看该作者
原帖由 飞鸿无痕 于 2009-3-23 12:55 发表
使用$()显然比``优越,这是因为:
其一,前者更易读,不会产生歧义。而反引号`常常被初学者当成单引号';
其二,前者嵌套时更简单,直接使用就行。而后者嵌套时内部的反引号必须用\转义;
其三,它们对反斜杠 ...


但是``的通用性好,兼容性比$()好!

论坛徽章:
0
10 [报告]
发表于 2009-03-23 14:03 |只看该作者
原帖由 waker 于 2009-3-21 13:22 发表
嗟,来食!

http://bbs.chinaunix.net/viewthread.php?tid=686286

刚刚看完bz给的链接,受益匪浅
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP