* literal:也就是普通纯文本,对 shell 来说没特殊功能。
* meta:对 shell 来说,具有特定功能的特殊保留字符。

(注一:关于 bash shell 在处理 command line 时的顺序说明,
请参考 O'Reilly 出版社之 Learning the Bash Shell, 2nd Edition‍,第 177 - 180 页的说明,.

Literal

没甚么好谈的,凡举 abcd、123456 这些"文字"都是 literal ...

但 meta 却常使我们困惑..... (confused?)
事实上,前两章我们在 command line 中已碰到两个机乎每次都会碰到的 meta :.

* IFS:由 <space> 或 <tab> 或 <enter> 三者之一组成(我们常用 space )。(该文来自net百科:www.csustnet.com)
* CR:由 <enter> 产生。
IFS 是用来拆解 command line 的每一个词(word)用的,因为 shell command line 是按词来处理的。(该文来自net百科:www.csustnet.com)
而 CR 则是用来结束 command line 用的,这也是为何我们敲 <enter> 命令就会跑的原因。
除了 IFS 与 CR ,常用的 meta 还有:..‍.

= : 设定变量。
$ : 作变量或运算替换(请不要与 shell prompt 搞混了)。
> :重导向 stdout。..

< :重导向 stdin。
|:命令管线。
& :重导向 file descriptor ,或将命令置于背境执行。
( ):将其内的命令置于 nested subshell 执行,或用于运算或命令替换。
{ }:将其内的命令置于 non-named function 中执行,或用在变量替换的界定范围。(该文来自net百科:www.csustnet.com)
; :在前一个命令结束时,而忽略其返回值,继续执行下一个命令。
&& :在前一个命令结束时,若返回值为 true,继续执行下一个命令。(该文来自net百科:www.csustnet.com)
|| :在前一个命令结束时,若返回值为 false,继续执行下一个命令。
!:执行 history 列表中的命令
....

假如我们需要在 command line 中将这些保留字符的功能关闭的话,就需要 quoting 处理了。
在 bash 中,常用的 quoting 有如下三种方法:
* hard quote:' ' (单引号),凡在 hard quote 中的所有 meta 均被关闭。
* soft quote: " " (双引号),在 soft quoe 中大部份 meta 都会被关闭,但某些则保留(如 $ )。(注二)

* escape

: \ (反斜杠),只有紧接在 escape (跳脱字符)之后的单一 meta 才被关闭。

( 注二:在 soft quote 中被豁免的具体 meta 清单,我不完全知道,
有待大家补充,或透过实作来发现及理解。 )

参考资料:http://www.csustnet.com/index.php?doc-view-116.html

转载于:https://blog.51cto.com/tianbright/1264872

literal和meta的意义和用法相关推荐

  1. meta标签的常见用法

    一.定义和用法 <meta> 标签始终位于 head 元素中.<meta> 元素可提供有关页面的元信息(meta-information),元数据不会显示在页面上,但是对于机器 ...

  2. 【转】Hibernate的Generator属性有7种class,本文简略描述了这7种class的意义和用法。...

    转自:http://hi.baidu.com/zhang_zhu_1/item/5cfcf1a98b86e88a1410733b [转]Hibernate的Generator属性有7种class,本文 ...

  3. c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法...

    原标题:嵌入式系统C语言重点语法const.volatile.static.堆栈等的意义及用法 在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场. 要点:堆, ...

  4. EOF的意义及用法(while(scanf(“%d“,n) != EOF))

    EOF为结束标志,当缓冲里没有东西或者遇到ctrl+z就结束 每次读取长度及类型%d那指定了 参考文章:EOF的意义及用法(while(scanf("%d",&n) != ...

  5. duilib各种布局的作用,相对布局与绝对布局的的意义与用法

    duilib各种布局的作用,相对布局与绝对布局的的意义与用法 原文  http://blog.csdn.net/zhuhongshu/article/details/38531447 主题 Duili ...

  6. 计算机网络中tx和fx,100Base-TX/T4/FX以太网意义及用法

    100Base-TX/T4/FX以太网意义及用法 活络以太网如今拟定的三种有关传输介质的规范之一,一种是100BASE-TX,别的两种是100BASE-T4.100BASE-FX.咱们将"1 ...

  7. 12 java中instanceof运算符的意义和用法

    java中instanceof运算符的意义和用法 instanceof运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来标识该对象是否为特定类或者它的子类的一 ...

  8. C语言中反斜杠“\“的意义和用法

    在阅读C语言代码经常可以看到代码中出现反斜杠"",不是很明白它的意思,遂对反斜杠""的意义和用法进行查询和总结记录: 转义字符 非常常用的一种用法,在反斜杠后面 ...

  9. 俄语入门-6格的意义和用法

    第一格的意义和用法: 1. 用作主语:也就是说,主语是一格.例如:Китай----наша великая родина 中国----我们伟大的祖国.(其中中国是句子的主语) 2. 用作为与的组成部 ...

  10. python各种常用符号的意思_写一篇专门介绍python中各种符号的意义及用法

    挖槽,小米今天上市就破发了,好多认购的小伙伴有点慌了,其实对于小帅b来说这很正常,没必要慌,保持持有就好了,相信小米会越来越牛逼的.小米和可能会成为互联网新一代的霸主主一,到时候可能就不是BAT了,而 ...

最新文章

  1. c#_static静态
  2. mysql基础(一) 编译安装mysql5.5
  3. Linux中root默认密码
  4. 拖链电缆 机器人电缆_洞头高柔性拖链网线标柔电缆
  5. Wireshark的https代理抓包(whistle中间人代理)
  6. bootstrap-multiselect 手动触发onChange事件
  7. 自学python能找到工作吗-自学Python如何找工作?多久能找到工作?
  8. mac本常用快捷键大全
  9. 组合导航(五):惯性导航参数建模
  10. 【Vue】从零搭建一个Vue项目
  11. python实现手机app自动化签到
  12. Huawei RH2288 V3 风扇噪音大的解决方案
  13. JointJS:可与Visio相媲美的开源在线制图工具
  14. 重装系统:cdboot:couldn't find ntldr
  15. 输入字符,如果是大写则转化为小写,如果是小写则转化为大写
  16. Python学习 Day37 jQuery框架01
  17. vue项目使用xlsx-style导出自定义格式excel
  18. 迅捷fw325r虚拟服务器设置,迅捷FW325Rwifi连接Internet上网怎么设置 - falogincn登录页面...
  19. BP神经网络在双色球彩票上的预测实验及实现
  20. maya前台渲染_maya前台渲染_maya前台渲染渲染不动!!!急求救!!!!!!!_maya前台渲染脚本...

热门文章

  1. 一段经典的 Java 风格程序 ( 类,包 )
  2. ASP.NET MVC3 RenderPartial 传入空Model时出现字典类型错误
  3. eclipse中jsp页面 page报错问题
  4. SpringBoot解决驼峰命名 ---返回Json实体类属性大小写问题
  5. spring+jdbc+template+transaction实现
  6. MySql事务及ACID实现的原理
  7. 微信云控开发SDK使用教程--手机回传朋友圈点赞数量通知服务端
  8. jdk基础之Object类getClass()方法
  9. Android ImageView点击效果
  10. WeBack(微信聊天记录导出)使用教程