转义是一种引用单个字符的方法. 一个前面放上转义符 (\)的字符就是告诉shell这个字符按照字面的意思进行解释, 换句话说, 就是这个字符失去了它的特殊含义.
在某些特定的命令和工具中, 比如echo和sed, 转义符往往会起到相反效果 - 它反倒可能会引发出这个字符的特殊含义.
特定的转义符的特殊的含义
- echo和sed命令中使用
- \n
-
表示新的一行
- \r
-
表示回车
- \t
-
表示水平制表符
- \v
-
表示垂直制表符
- \b
-
表示后退符
- \a
-
表示"alert"(蜂鸣或者闪烁)
- \"
表示引号字面的意思
1 echo "Hello" # Hello 2 echo "\"Hello\", he said." # "Hello", he said. |
- \$
表示$本身子面的含义(跟在\$后边的变量名将不能引用变量的值)
1 echo "\$variable01" # 结果是$variable01 |
- \\
表示反斜线字面的意思
\0xx
转换为八进制的ASCII码, 等价于0xx
echo "foo bar" #foo #bar echo echo 'foo bar' # 没什么区别. #foo #bar echo echo foo\ bar # 换行符被转义. #foobar echo echo "foo\ bar" # 与上边一样, \在部分引用中还是被解释为续行符. #foobar echo echo 'foo\ bar' # 由于是全引用, 所以\没有被解释成续行符. #foo\ #bar