literal和meta的意义和用法
* 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的意义和用法相关推荐
- meta标签的常见用法
一.定义和用法 <meta> 标签始终位于 head 元素中.<meta> 元素可提供有关页面的元信息(meta-information),元数据不会显示在页面上,但是对于机器 ...
- 【转】Hibernate的Generator属性有7种class,本文简略描述了这7种class的意义和用法。...
转自:http://hi.baidu.com/zhang_zhu_1/item/5cfcf1a98b86e88a1410733b [转]Hibernate的Generator属性有7种class,本文 ...
- c语言static. volatile,嵌入式系统C语言重点语法const、volatile、static、堆栈等的意义及用法...
原标题:嵌入式系统C语言重点语法const.volatile.static.堆栈等的意义及用法 在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场. 要点:堆, ...
- EOF的意义及用法(while(scanf(“%d“,n) != EOF))
EOF为结束标志,当缓冲里没有东西或者遇到ctrl+z就结束 每次读取长度及类型%d那指定了 参考文章:EOF的意义及用法(while(scanf("%d",&n) != ...
- duilib各种布局的作用,相对布局与绝对布局的的意义与用法
duilib各种布局的作用,相对布局与绝对布局的的意义与用法 原文 http://blog.csdn.net/zhuhongshu/article/details/38531447 主题 Duili ...
- 计算机网络中tx和fx,100Base-TX/T4/FX以太网意义及用法
100Base-TX/T4/FX以太网意义及用法 活络以太网如今拟定的三种有关传输介质的规范之一,一种是100BASE-TX,别的两种是100BASE-T4.100BASE-FX.咱们将"1 ...
- 12 java中instanceof运算符的意义和用法
java中instanceof运算符的意义和用法 instanceof运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来标识该对象是否为特定类或者它的子类的一 ...
- C语言中反斜杠“\“的意义和用法
在阅读C语言代码经常可以看到代码中出现反斜杠"",不是很明白它的意思,遂对反斜杠""的意义和用法进行查询和总结记录: 转义字符 非常常用的一种用法,在反斜杠后面 ...
- 俄语入门-6格的意义和用法
第一格的意义和用法: 1. 用作主语:也就是说,主语是一格.例如:Китай----наша великая родина 中国----我们伟大的祖国.(其中中国是句子的主语) 2. 用作为与的组成部 ...
- python各种常用符号的意思_写一篇专门介绍python中各种符号的意义及用法
挖槽,小米今天上市就破发了,好多认购的小伙伴有点慌了,其实对于小帅b来说这很正常,没必要慌,保持持有就好了,相信小米会越来越牛逼的.小米和可能会成为互联网新一代的霸主主一,到时候可能就不是BAT了,而 ...
最新文章
- c#_static静态
- mysql基础(一) 编译安装mysql5.5
- Linux中root默认密码
- 拖链电缆 机器人电缆_洞头高柔性拖链网线标柔电缆
- Wireshark的https代理抓包(whistle中间人代理)
- bootstrap-multiselect 手动触发onChange事件
- 自学python能找到工作吗-自学Python如何找工作?多久能找到工作?
- mac本常用快捷键大全
- 组合导航(五):惯性导航参数建模
- 【Vue】从零搭建一个Vue项目
- python实现手机app自动化签到
- Huawei RH2288 V3 风扇噪音大的解决方案
- JointJS:可与Visio相媲美的开源在线制图工具
- 重装系统:cdboot:couldn't find ntldr
- 输入字符,如果是大写则转化为小写,如果是小写则转化为大写
- Python学习 Day37 jQuery框架01
- vue项目使用xlsx-style导出自定义格式excel
- 迅捷fw325r虚拟服务器设置,迅捷FW325Rwifi连接Internet上网怎么设置 - falogincn登录页面...
- BP神经网络在双色球彩票上的预测实验及实现
- maya前台渲染_maya前台渲染_maya前台渲染渲染不动!!!急求救!!!!!!!_maya前台渲染脚本...
热门文章
- 一段经典的 Java 风格程序 ( 类,包 )
- ASP.NET MVC3 RenderPartial 传入空Model时出现字典类型错误
- eclipse中jsp页面 page报错问题
- SpringBoot解决驼峰命名 ---返回Json实体类属性大小写问题
- spring+jdbc+template+transaction实现
- MySql事务及ACID实现的原理
- 微信云控开发SDK使用教程--手机回传朋友圈点赞数量通知服务端
- jdk基础之Object类getClass()方法
- Android ImageView点击效果
- WeBack(微信聊天记录导出)使用教程