Ruby - 延迟ruby程序,直到shell命令执行完成

时间:2011-08-03 07:03:31

标签: ruby loops zip delay

我使用shell命令在ruby中压缩文件。然后我将压缩文件上传到服务器。 当我在一个循环中使用它时:

dump_files.each do |dump_file|
  Open3.popen3("zip #{zip_file}  #{dump_file}")
end

并上传,dump_files数组中的最后一个文件不存在于上传的zip文件中,但它存在于本地文件中。

我认为这是因为压缩文件的时间延迟。 在zip命令执行完成之前,如何延迟我的ruby执行?

2 个答案:

答案 0 :(得分:3)

不应该是:

`zip "#{zip_file}"  "#{dump_file}"`

(换句话说,你根本没有拉链?)

答案 1 :(得分:0)

使用``而不是popen3将解决问题

替换

Open3.popen3("zip #{zip_file}  #{dump_file}")

`zip #{zip_file}  #{dump_file}`