关于转义字符的学习

转义字符在很多系统或语言中都有用到。

为什么要有转义字符呢?以我目前接触到的工作来看,有两种原因:
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中我们看到转义字符就是'\'(反斜杠),
那在一些其它的语言中,也是使用反斜杠作为转义字符的吗,还是说
每种语言都定义了自己语言的转义字符呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值