转义字符用于去除一个单个字符的特殊意义。一个非引用的反斜杠,\,在Bash中被用作转义字符。它保留了跟随在之后的字符的字面值,除了 newline。如果在反斜杠之后一个换行字符立即出现,当行的长度比终端的宽度更长时转义字符使行得以继续;当比终端的宽度要宽时标记了行的延续;反斜杠从输入流中被移除并有效地忽略。
franky ~>
date
=20021226
franky ~>
echo$date
20021226franky ~>
echo\$date
$date
这个例子中,变量 date
建立以存储一个值。第一个 echo 显示了这个变量的值,不过第二个,$ 被转义了。
单引号('')用于保持在引号内的每个字符的字面值。一个单引号乃至用反斜杠转义后都不能在2个单引号之间出现。
我们继续先前的例子:
franky ~>
echo'$date'
$date
使用双引号保持引号内的所有字符的字面值,除了$,``,\。
在双引号中,$和``保留着特殊的含义。
反斜杠只有跟随在$,``,\ 或者换行符之后才保留原来的意义。在双引号组中反斜杠,Within double quotes, the backslashes are removed from the input stream when followed by one of these characters. Backslashes preceding characters that don't have a special meaning are left unmodified for processing by the shell interpreter.
在2个双引号之中,一个双引号可以用反斜杠开始被引用。
franky ~>
echo"$date"
20021226franky ~>
echo"`date`"
Sun Apr 20 11:22:06 CEST 2003franky ~>
echo"I'd say: \"Go for it!\""
I'd say: "Go for it!"franky ~>
echo"\"
More input>
"franky ~>
echo"\\"
\
以 “$'STRING'” 形式的词用一个特殊的方式来对待。词扩展成一个字符串,The word expands to a string, with backslash-escaped characters replaced as specified by the ANSI-C standard. 反斜杠转义序列可以在Bash文档中找到。