设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Perl | PHP | Python 脚本程序开发
›
请问关于文件的结尾的问题
返回列表
查看:
1032
|
回复:
7
请问关于文件的结尾的问题
[复制链接]
boblovebaby
boblovebaby
当前离线
积分
38
IP卡
狗仔卡
发表于 2005-10-13 08:55:43
|
显示全部楼层
|
阅读模式
如果我用vi编辑一个文件a,在最后一行键入一个回车后,按esc 然后:wq
然后写一个小程序try,象这样
#!/usr/bin/perl -w
foreach (<>){
print $_;
}
然后我运行
./try a
的时候后面总是多一个换行,
如果我把a中最后一行的回车去掉是理想的输出。
请问这是为什么?
是一个文件在文件结尾之前要自动加一个换行符么?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
生来自由
生来自由
当前离线
积分
96
IP卡
狗仔卡
发表于 2005-10-13 10:07:39
|
显示全部楼层
在最后一行$_是“\n”,你 print $_; 当然就有一个空行。
但如果你去掉了最后的空行,就不会输出空行啦。
这个指令不是和cat一样吗?用cat也会有这个结果的。
回复
支持
反对
使用道具
举报
显身卡
boblovebaby
boblovebaby
当前离线
积分
38
IP卡
狗仔卡
楼主
|
发表于 2005-10-13 13:13:11
|
显示全部楼层
比入文件a的内容是
abcd
12345
在12345的后面敲一个回车,然后光标停在下一行的开始,然后就保存文件退出
这时运行try的时候,为什么在打印12345之后还有一个空行呢?
回复
支持
反对
使用道具
举报
显身卡
生来自由
生来自由
当前离线
积分
96
IP卡
狗仔卡
发表于 2005-10-14 00:00:57
|
显示全部楼层
因为你的a文件的最后一个字符是回车,而你的try程序是把a里面所有的东西打出来,所以回车当然也被打出来了。
这跟你在a文件里放入"abc",然后tra a就打出abc的道理一样啊。
回复
支持
反对
使用道具
举报
显身卡
boblovebaby
boblovebaby
当前离线
积分
38
IP卡
狗仔卡
楼主
|
发表于 2005-10-14 01:01:59
|
显示全部楼层
a文件的最后一个字符是回车应该仅是把文件的最后一行也就是12345打印出来后,换成新的一行并光标回到行首,也就是出现一个在行首的shell提示符,那为什么会这样
12345
[....]$
回复
支持
反对
使用道具
举报
显身卡
生来自由
生来自由
当前离线
积分
96
IP卡
狗仔卡
发表于 2005-10-15 04:54:48
|
显示全部楼层
I see.
This is the way perl works.
回复
支持
反对
使用道具
举报
显身卡
boblovebaby
boblovebaby
当前离线
积分
38
IP卡
狗仔卡
楼主
|
发表于 2005-10-15 15:15:16
|
显示全部楼层
why does perl work in such a unreasonable way?!
回复
支持
反对
使用道具
举报
显身卡
SmartAlvinG
SmartAlvinG
当前离线
积分
6
IP卡
狗仔卡
发表于 2005-10-31 16:31:41
|
显示全部楼层
Post by
boblovebaby
换成新的一行并光标回到行首,也就是出现一个在行首的shell提示符
[....]$
不是这样的吧?
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表