我使用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