echo与转义符
上一篇 /
下一篇 2008-01-25 14:51:06
/ 个人分类:Linux
echo的-e
选项使某些用反斜线(\)进行转义的字符具有特殊意义,看下面的例子:51Testing软件测试网5rH&k2YUl
q7G$ZHsZQ+{U0例1
'TTYJSrs0-bash-3.00$ echo -e hello\n51Testing软件测试网:^/NcA#G*v
G{9sV
hellon
zh!Q*f$Iw%b0例251Testing软件测试网F+I'Lh D0w:|
-bash-3.00$ echo -e "hello\n"
9V~B i]v
X*k`*Q.T(D0hello
8N!ZcW'A
h;[e0 51Testing软件测试网s*je}9pY
-bash-3.00$
~5Qz+L0F!{8V0例351Testing软件测试网s/Y B5W0\0w;eF
-bash-3.00$ echo -e hello\\n51Testing软件测试网F@%P9i aHG#p
hello
,HW5m3t5RC Y Bk&Wp0
X[
Dxlq%t(s0-bash-3.00$51Testing软件测试网;w;}!Os U
V
AyXt
i3m-Y0 为什么会出现例1的情况?51Testing软件测试网&Qt o2]yV
原因是反斜线(\)后面跟着新行会使bash把这些字符序列视为行延续请求。因此要想让echo
命令或使用相似转义控制字符的众多命令能够正确地处理转义符,必须将转义序列包含在引号中,或者作为引号中的字符串的一部分(例2),否则就要使用第二个反斜线(例3),让shell保留序列的字面意义。
Q,T.S i"W%Y&j