shell中的引用

By francis_hao    Mar 31,2018 html

 

引用,用来移除某个字符或单词对于shell的特殊含义 shell

每一个元字符对于shell都有特殊含义,可分割单词,若是想使用其自己的含义就须要用到引用,元字符以下 bash

|spa

&htm

;blog

(ci

)get

<string

>table

space

tab

 

若是知足历史命令扩展的条件而又不想扩展就必须使用引用。命令扩展一般是"!"

 

有三种引用机制,以下

\

转义符,能够使一些有特殊含义的字符保持其自己含义

'

单引号里的内容都保持了其自己的含义,单引号里不能再有单引号

"

双引号里的内容除了几个特例,其他内容都保持其自己含义。特例包括

$

用于变量置换

`

用于命令置换

\

只有在其后跟随$ ` " \<newline>的时候才做为特例,不然就是字符自己

!

只有在符合历史命令扩展的时候才做为特例,不然就是字符自己

 

有一种特殊形式:$'string',用于ANSI C标准的转义序列,string是下面的一种

\a

响铃

\b

退格

\e

溢出(ESC

\E

\f

换页符

\n

换行

\r

回车

\t

制表符

\v

垂直制表符

 

示例

一、特殊形式$'string'的用法,这里是退格字符。

 

二、这里的*不属于双引号引用里的特例,因此不会被扩展,只是以字符自己对待。

因此在下面的脚本中,第二种写法就会致使结果不是预期的了

 

 


本文由 刘英皓 创做,采用 知识共享署名-非商业性使用-相同方式共享3.0中国大陆许可协议 进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/8682143.html

 

 

参考

【1】man bash

相关文章
相关标签/搜索