将Ruby脚本输出存储到文件中的问题

时间:2010-05-18 07:35:21

标签: ruby linux bash

我有一个输出一堆文本的Ruby脚本。举个例子:

puts "line 1"
puts "line 2"
puts "line 3"
# etc... (obviously, this isn't how my script works..)

没有很多的数据 - 总共可能有大约8kb的字符数据。

当我在命令行上运行脚本时,它按预期工作:

$ ./my-script.rb

line 1
line 2
line 3

但是,当我将其推入文件时,输出将被截断为4096字节:

$ ./my-script.rb > output.txt

什么会导致它停在4kb?

更新:我刚刚重写了脚本以直接输出到文件,而不是打印到屏幕并捕获输出,问题仍然存在!

$output = File.new("file.txt")
$output << "line 1"  #etc..

1 个答案:

答案 0 :(得分:4)

您的程序是否正确终止? 4kB可以是I / O的OS内部缓冲区大小,当程序突然终止或根本不终止时,下一个缓冲区中存在的以下数据(最多8kB,即数据的总大小)将丢失。