免费注册 查看新帖 |

Chinaunix

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

shell十三问中“和‘的一点疑问! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-03 13:00 |只看该作者 |倒序浏览
  1.   $ A=B C   # 空白鍵未被關掉,作為 IFS 處理。
  2.    $ C: command not found.
  3.    $ echo $A
  4.    
  5.    $ A="B C"   # 空白鍵已被關掉,僅作為空白鍵處理。
  6.    $ echo $A
  7.    B C
  8. 在第一次設定 A 變量時,由於空白鍵沒被關閉,command line 將被解讀為:
  9. * A=B 然後碰到<IFS>,再執行 C 命令
复制代码

第一个中空白键未被关掉,A=B已经执行了,可为什么echo $A结果没有呢?

还有就是有的地方说在双引号中” ‘ $ 空格这四个meta不会被关闭,可很明显这个例子中空白键已经被关闭了,到底有哪些meta在双引号中不会被关闭呢?有没有全面的总结?我查了一些资料,说的不很准确,有些meta说的含糊不清:(

  1.    $ echo "'$A'"   # 最外面的是雙引號
  2.    'B C'
  3.    (提示:單引號及雙引號,在 quoting 中均被關?#93;了。)
复制代码

这个例子我又有点不懂了,在双引号下面单引号不被关闭,所以单引号仍然起作用,可单引号会关闭所有的meta,但这个例子显示单引号只是独立出来,这个意思就是单引号的meta作用又被关闭了,只是作为literal?
看来我还是对双引号下的某些meta了解不透!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-03-03 14:03 |只看该作者

shell十三问中“和‘的一点疑问!

1) A=B command
那邊的 A= 是 command 在 child process 中用的.
並不影響當前 process
若只跑 A=B , 那才是在當前 process 定義.

2) 請重看, 我沒說過 ' 會在 " " 中不會關.

论坛徽章:
0
3 [报告]
发表于 2005-03-03 14:10 |只看该作者

shell十三问中“和‘的一点疑问!

第一个问题不知道;
第二个问题中,单引号已经被双引号给屏蔽了,变成了普通字符。所以显示的是' B C';这里的',和其他字符没有差别

论坛徽章:
0
4 [报告]
发表于 2005-03-03 15:52 |只看该作者

shell十三问中“和‘的一点疑问!

原来是我对”能关闭的meta的误解,我看过一篇文章说在“中除” ’ $ 空格外都是普通字符,所以我总觉得“中这四个都不会关闭!可实际是有哪些不会关闭呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP