为什么ruby的IO.read添加换行符?

时间:2018-09-21 23:32:37

标签: ruby io

$ echo testing > testfile
$ irb
2.5.1 :001 > IO.read('testfile')
=> "testing\n"

试图了解换行符的来源,因为它显然不在文件中。

1 个答案:

答案 0 :(得分:7)

但是换行符在文件中,echo添加它。您可以通过hexdump自己查看:

$ echo testing > testfile
$ hexdump testfile 
0000000 74 65 73 74 69 6e 67 0a                        
0000008

0x0a是您的换行符。

您可以询问您的shell(大概是bash)有关echo的信息:

$ help echo
echo: echo [-neE] [arg ...]
    Output the ARGs.  If -n is specified, the trailing newline is
    suppressed. [...]

因此,如果您说echo -n testing > testfile,您将获得期望的结果。