转义字符在很多系统或语言中都有用到。
为什么要有转义字符呢?以我目前接触到的工作来看,有两种原因:
1. 字符本身已经被解释成另外的含义;
2. 字符本身不可打印。
关于原因1,以linux shell为例进行学习。
因为shell下的域分隔符就是空格字符,所以shell将空格理解成域分隔符了。
sh-# echo 11 22
11 22
sh-# echo $IFS
sh-#
解决方法是;
(1)使用双引号将整个字符串括起来,这样shell就知道这整个引号包括的就是一整个字符串了,
sh-3.2# echo "11 22"
(2)使用转义字符对空格字符进行转义,
11 22
sh-3.2# echo 11\ \ \ \ \ \ \ \ \ 22
11 22
关于原因2,以C语言为例进行学习。
在C语言中,很常见的有'\0'表示空字符,代表一个字符串的结束;
'\n'代表换行(LF)字符;
'\r'代表回车(CR)字符;
...
这些字符都是不可见字符,所以如果程序中要使用这些字符,
那就必须要使用转义字符转义了。
因为键盘上压根就没有这些转义字符(所以才称之为不可打印字符),
所以如果你不使用转义字符进行转义,就根本使用不到这些字符了。
待确认问题:
1. IFS这个环境变量里的值可能是空格、换行这样的不可见字符,
那要如何才能确认是空格字符,还是换行字符呢?
2. 在C语言、shell中我们看到转义字符就是'\'(反斜杠),
那在一些其它的语言中,也是使用反斜杠作为转义字符的吗,还是说
每种语言都定义了自己语言的转义字符呢?