我使用shell命令来压缩ruby文件。然后我将压缩文件上传到服务器。 当我使用它在一个循环中,如:Ruby - 延迟ruby程序,直到shell命令执行完成
dump_files.each do |dump_file|
Open3.popen3("zip #{zip_file} #{dump_file}")
end
和上传的dump_files数组中的最后一个文件中不存在上传的zip文件,但它存在于本地文件。
我认为这是因为压缩文件的时间延迟。 如何延迟我的ruby执行,直到zip命令执行完成?
问题一定是别的。没有什么可以延迟的,因为当你用反引号运行shell命令时,shell命令在* *完成之前不会返回到Ruby。尝试“睡眠10”,你会看到。 – Casper
此外,它似乎怀疑你的命令''zip ..“''使用双引号。你应该运行'zip ...'。 – Casper
对不起朋友,以前我使用Open3.popen3()来执行shell命令。现在,当我使用''而不是popen3()时它可以工作。非常感谢你 – Sayuj