5.2 转义

转义是一种引用单字符的方法。通过在特殊字符前加上转义符 \ 来告诉shell按照字面意思去解释这个字符。

notice 需要注意的是,在一些特定的命令和工具,比如 echosed 中,转义字符通常会起到相反的效果,即可能会使得那些字符产生特殊含义。

echosed 命令中,转义字符的特殊含义

换行(line feed)。

回车(carriage return)。

水平制表符。

\v

垂直制表符。

\b

退格。

\a

警报、响铃或闪烁。

\0xx

ASCII码的八进制形式,等价于 0nn,其中 nn 是数字。

important$' ... ' 字符串扩展结构中可以通过转义八进制或十六进制的ASCII码形式给变量赋值,比如 quote=$'\042'

样例 5-2. 转义字符

下面是一个更加复杂的例子:

样例 5-3. 检测键盘输入

还可以查看样例 37-1。

\"

转义引号,指代自身。

\$

转义美元符号(跟在 \\$ 后的变量名将不会被引用)。

\\

转义反斜杠,指代自身。

extra 根据转义符所在的上下文(强引用、弱引用,命令替换或者在 here document)的不同,它的行为也会有所不同。

含有转义字符的字符串可以赋值给变量,但是仅仅将单一的转义符赋值给变量是不可行的。

转义空格能够避免在命令参数列表中的字符分割问题。

转义符也提供一种可以撰写多行命令的方式。通常,每一行是一个命令,但是转义换行后命令就可以在下一行继续撰写。

extra 在脚本中,如果以 "|" 管道作为一行的结束字符,那么不需要加转义符 \ 也可以写多行命令。但是一个好的编程习惯就是在写多行命令的事后,无论什么情况都要在行尾加上转义符 \。

最后更新于

这有帮助吗?