shell中的引用
By francis_hao Mar 31,2018
引用,用来移除某个字符或单词对于shell的特殊含义
每个元字符对于shell都有特殊含义,可分割单词,如果想使用其本身的含义就需要用到引用,元字符如下
| | & | ; | ( | ) | < | > | space | tab |
如果满足历史命令扩展的条件而又不想扩展就必须使用引用。命令扩展通常是"!"
有三种引用机制,如下
\ | 转义符,可以使一些有特殊含义的字符保持其本身含义 | ||||||||
' | 单引号里的内容都保持了其本身的含义,单引号里不能再有单引号 | ||||||||
" | 双引号里的内容除了几个特例,其余内容都保持其本身含义。特例包括
|
有一种特殊形式:$'string',用于ANSI C标准的转义序列,string是下面的一种
\a | 响铃 |
\b | 退格 |
\e | 溢出(ESC) |
\E | |
\f | 换页符 |
\n | 换行 |
\r | 回车 |
\t | 制表符 |
\v | 垂直制表符 |
示例
1、特殊形式$'string'的用法,这里是退格字符。
2、这里的*不属于双引号引用里的特例,所以不会被扩展,只是以字符本身对待。
所以在下面的脚本中,第二种写法就会导致结果不是预期的了
本文由 刘英皓 创作,采用 知识共享署名-非商业性使用-相同方式共享3.0中国大陆许可协议 进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/8682143.html
参考
【1】man bash