Ruby / Shell:“put”/“cat”一个不起眼的文件搞砸了终端

时间:2013-04-18 19:36:55

标签: ruby shell undefined-behavior

我尝试在Ruby中重写一些针对Windows的bash命令,并尝试捕获一些系统文件完全弄乱了终端:它随机向上滚动(Windows)或向下滚动(Linux)

有问题的文件就是这个:

http://danyel.apus.uberspace.de/somefile

我的Ruby程序是这样的:

#!/package/host/localhost/ruby-2.0.0/bin/ruby
#cat.rb
File.open(ARGV[-1], "r") do |f|
    puts f.read
    f.close
end

如果我“抓住”文件(通过bash),行为结果也是完全随机的。

为什么会出现这种情况?

感谢您的帮助,

的问候,
Danyel。

1 个答案:

答案 0 :(得分:0)

该文件看起来像数据库......如果你在控制台上检查它,你会看到十六进制文字。你可以这样“可读”:

puts File.read('path/to/file').unpack('H*')