免费注册 查看新帖 |

Chinaunix

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

关于引用符号 \ 的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-10 11:57 |只看该作者 |倒序浏览
$ echo "\G"
\G
$ echo "\$PWD"
$PWD

上面的echo "\G"的结果怎么变成\G呢,为什么不是G.

论坛徽章:
0
2 [报告]
发表于 2008-01-10 12:02 |只看该作者
因为在""中\G没有意义,所以显示\G了。
如果是\加后面的字母有意义,那将会转义。比如echo "\t"

[ 本帖最后由 灿烂小猪 于 2008-1-10 12:03 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-01-10 12:29 |只看该作者
因为\G解释不了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2008-01-10 13:17 |只看该作者
因为G不是$

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2008-01-10 13:18 |只看该作者
原帖由 hbh231 于 2008-1-10 11:57 发表
$ echo "\G"
\G
$ echo "\$PWD"
$PWD

上面的echo "\G"的结果怎么变成\G呢,为什么不是G.


对于Bash Shell而言,在双引号中,\只有在后紧接$ ` " \  <newline>时才是特殊的,其它情况下\只有字面意义。(bash man)
没有被引用的\x, shell展开为x。(好像这个没有定义)
更正:man 了一下bash,\x就是x。

echo "\t" ,经bash展开后,传给echo的参数是\t, 最后显示tab符,
echo "\G" ,经bash展开后, 传给echo的参数是\G, 最后显示\G。
这是echo的效果。

echo \G ,经bash展开后, 传给echo的参数是G, 最后显示G。

[ 本帖最后由 blackold 于 2008-1-11 17:09 编辑 ]
andyrui 该用户已被删除
6 [报告]
发表于 2008-01-10 16:58 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2008-01-11 16:46 |只看该作者
对啊

echo \g

echo “\g”
为什么有区别

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2008-01-11 17:05 |只看该作者
上面不是解释清楚了吗?

论坛徽章:
0
9 [报告]
发表于 2008-01-11 19:59 |只看该作者
haha,发现这里的帖子滞后很厉害啊,我发贴的时候,你的答案还没出来呢

论坛徽章:
0
10 [报告]
发表于 2008-01-11 20:28 |只看该作者
Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the  exception
       of $, ', and \.  The characters $ and ' retain their special meaning within double quotes.


man bash里面的一段话,
The characters $ and ' retain their special meaning within double quotes.
翻译过来就是:$和'  在双引号里面保留他们的特殊含义。

既然这样,那么对于$,它的的特殊含义就是代表一个变量;那么对于',它的特殊含义就应该是 引用(而不是代表一个字符)吧?

那为什么  echo "'" 出来的是 '   ,而不是空呢?假如 '在双引号中代表引用(保留特殊含义),那么被shell解析后,传给echo的应该是空才对啊,怎么输出是'

[ 本帖最后由 wbjk 于 2008-1-11 20:30 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP