- 帖子
- 195
- 积分
- 288
- 技术
- 27
- 捐助
- 0
- 注册时间
- 2017-3-21
|
本帖最后由 cfwyy77_bat 于 2019-6-25 15:07 编辑
回复 3# Batcher
我debian 9, 用read 重定向的方法,也是要留个空行。
以前我一直是这么认为的。
我也用虚拟机centos试了一下正常的。我又确认几次,大概知道原因在哪了。
首先 read 默认最后没读到换行符,不算成功读到一行,这个应该是确认的。
至于最后一行没输出原因应该是在编辑器。
vim 编辑文件保存的时候 vim 默认会在最后加上一个换行符,但视觉上你看不出有换行(看不出最后有空行),但用hd查看可以看到最后有一个自动加上去的换行符 0x0a
这时 用read 重定向的方法,所有前面的行都会正常输出。
而其它的编辑器 如 vscode,最后一行如果不敲回车,是不会自动加换行符的。所以最后一行不会输出。除非再手动再加个回车。
vscode上看 所见的和实际的一致,有回车就有一个空行,vim上 不是这样的,最后那个自动加上去的那个换行是不会显示成一个空行的 - -!
又查到了一个 POSIX标准对 行的标准定义,line
最后换行符是不可少的,这么看vim自动加换行符是有道理的。 |
|