1
在ruby中是否有同步的exec?我尝试了下面的代码,当我打开文件时,我什么也没有得到,这可能是因为exec没有完成写入文件。有没有办法同步这个?
exec "sort data.txt > data.sort"
File.foreach("data.sort") { |line| puts line}
特德
在ruby中是否有同步的exec?我尝试了下面的代码,当我打开文件时,我什么也没有得到,这可能是因为exec没有完成写入文件。有没有办法同步这个?
exec "sort data.txt > data.sort"
File.foreach("data.sort") { |line| puts line}
特德
您正在寻找system
,而不是exec
。但是,如果使用反引号,它会返回命令的输出。
puts `sort data.txt`
如果您需要遍历,那么你可以在返回值直接迭代:
sorted = `sort data.txt`
sorted.each do |line|
puts line
end
甚至:
`sort data.txt`.each do |line|
puts line
end
exec
替换正在执行的一个当前进程; exec
运行完毕后什么都没有!您可能需要system
。
你确定那是因为这一点,并没有因为该命令无法执行的第一个地方?我对Ruby不太了解,但是我非常怀疑'exec'不会被允许完成。 – 2010-10-25 22:25:04