shell中有两类字符,一种是普通字符,即普通纯文本(literal);另一类即元字符(meta),是shell的保留字符,在shell中有着特殊意义。
元字符有时会造成麻烦,比如说想要在程序中用美元符号打印商品价格,但是这一符号在shell中一般被用来提取变量的值。
为了消除这些特殊符号的功能,就必须对其进行转义和引用。
转义: 转义是指使用转义符引用单个字符,从而使其表达单纯的字符的字面含义。Shell中的转义符是反斜线“\”,使用转义符的目的是使转义符后面的字符单纯地作为字符出现,而不解释其特殊的含义
shell特殊字符及转义
引用:引用是指将字符串用某种符号括起来,以防止特殊字符被解析为其他意思。
Shell中一共有4种引用符,分别是双引号、单引号、反引号(在键盘上和波浪号位于同一个键)和转义符。其中双引号又叫“部分引用”或“弱引用”,可以引用除$符、反引号、转义符之外的所有字符;单引号又叫“全引用”或“强引用”,可以引用所有字符;反引号则会将反引号括起的内容解释为系统命令。
1、部分引用(双引号)
部分引用是指用双引号括起来的引用。在这种引用方式中,$符、反引号(`)、转义符(\)这3种特殊字符依然会被解析为特殊意义。
2、全引用(单引号)
全引用是指用单引号括起来的引用。单引号中的任何字符都只当作是普通字符(除了单引号本身,也就是说单引号中间无法再包含单引号,即便用转义符转义单引号也不行)。所有在单引号中的字符都只能代表其作为字符的字面意义。
3、命令替换
命令替换是指将命令的标准输出作为值赋给某个变量。比如,在某个目录中输入ls命令可查看当前目录中所有的文件,但如何将输出存入某个变量中呢?这就需要使用命令替换了,这也是Shell编程中使用非常频繁的功能。
Shell中有两种方式可以完成命令替换,一种是反引号(`),一种是$(),使用方法如下:
`command` 或者 $(command)
二者区别 ``在多种UNIX Shell中均可使用,而$()只能在Bash Shell中使用。
$()可以嵌套使用,而``不可以。