当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于\n转义用法的几个问题请教(不明白的可以来共同讨论。)
帖子发表于 : 2011-06-16 19:35 

注册: 2011-05-28 14:03
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
以下是我在shell里边输入的一段命令,用于检测\n的用法。有几个不理解的地方。
1 /home/lyn -->$ PS1="abc\ndef$ "
2 abc
3 def$ echo $PS1
4 abc\ndef$
5 abc
6 def$ cat >newfile
7 abc\ndef
8 ^C
9 abc
10 def$ cat newfile
11 abc\ndef
12 abc
13 def$ ab=abc\
14 > def
15 abc
16 def$ echo $ab
17 abcdef
18 abc
19 def$

第一句,我的理解是双引号把字串abc\ndef$置于了变量PS1之中。所以接下来的shell提示在读取PS1变量的时候会读取这个新值。但由于字串中\n转义成了换行符,所以实际提示变成了:
2 abc
3 def$
但我不明白为什么echo $PS1显示的时候没有转义却又把\n给显示了出来。接着我又实验,如同6~11行。在newfile文件中我写入了abc\ndef字串。然后又用cat newfile显示。结果如同echo $PS1一样。也是把\n原原本本的读了出来,并没有带来转义效果。我又接着实验,如同13~17行。
13 def$ ab=abc\(此时按了ENTER键)
发现此时的\好像是把ENTER键转义了,因为这一行并没有结束,它让我继续输入,如同14行所示。我又输入def后按ENTER。命令正常结束。可是显示的ab变量的时候又显示了一个连续的字串abcdef。
对于为什么会出现这种情况,我百思不得其解。怎么解释都感觉行不通。所以才来这里请教各位大才,望不吝赐教。先在这里谢谢了。希望有清楚明白这个问题的人给我详细的解释。或者给我一个链接都行。想不通憋的难受。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于\n转义用法的几个问题请教(不明白的可以来共同讨论。)
帖子发表于 : 2011-06-16 19:44 
头像

注册: 2009-10-16 22:46
帖子: 18958
地址: finland
送出感谢: 28
接收感谢: 48
不懂 :-?
期待解答


_________________
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于\n转义用法的几个问题请教(不明白的可以来共同讨论。)
帖子发表于 : 2011-06-16 19:55 

注册: 2010-06-16 20:55
帖子: 177
送出感谢: 0 次
接收感谢: 1
PS1是每个shell自己定义转义序列的, bash的转义序列支持\n, 你换个就不行了, 比如
代码:
sh
PS1='abc\ndef$ '

这样的实验同样可以在zsh做, 也是不支持\n转义的.
后面的, cat不能转义, 变量用\表示换行也是bash规定的.


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于\n转义用法的几个问题请教(不明白的可以来共同讨论。)
帖子发表于 : 2011-06-17 11:25 

注册: 2011-05-28 14:03
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
用echo -e ...就能转义了。难道这些转义字符都是每个程序自已定义的吗?


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于\n转义用法的几个问题请教(不明白的可以来共同讨论。)
帖子发表于 : 2011-06-30 6:33 
头像

注册: 2008-07-30 23:21
帖子: 13427
地址: freebuilder@yeah.net
系统: Debian stable AMD64
送出感谢: 38
接收感谢: 127
leanas, 是自己定义的没错,但通常都遵循 C 语言的习惯。


_________________
(2015-11-16 更新)适合 WM 的截图脚本
(2015-08-24 更新)Debian、Ubuntu 源列表说明
(2013-02-01 首发)文字如何绘出
▷▷ 【更 多 在 此】 ◁◁
箪食瓢饮随遇安,不求栋梁求参天。
【初韵】一门牛逼的编程语言。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译