轉義是一種引用單個字符的方法. 一個前面放上轉義符 (\)的字符就是告訴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