0
時,正在運行的Ruby腳本某些部署命令狀獲取系統的輸出()時,在Ruby調用只獲得存儲
system('exam-deploy-all mod.rb >> temp.txt')
是越來越存儲在temp.txt
文件輸出中的一部分輸出的一部分。我想存儲整個輸出,我認爲它不存儲,因爲輸出非常大。 任何人都可以告訴我如何解決這個問題?
時,正在運行的Ruby腳本某些部署命令狀獲取系統的輸出()時,在Ruby調用只獲得存儲
system('exam-deploy-all mod.rb >> temp.txt')
是越來越存儲在temp.txt
文件輸出中的一部分輸出的一部分。我想存儲整個輸出,我認爲它不存儲,因爲輸出非常大。 任何人都可以告訴我如何解決這個問題?
我不認爲你會失去輸出,因爲有太多的,我猜你的一些輸出是去標準輸出流(你保存在temp.txt
),有些是去的標準錯誤(您不在任何地方保存)。你可以試試這個:
system('exam-deploy-all mod.rb > temp.txt 2>errors.txt')
擺在temp.txt
輸出和誤差errors.txt
或者其中一種:
system('exam-deploy-all mod.rb > temp.txt 2>1')
system('exam-deploy-all mod.rb &> temp.txt')
把他們無論是在temp.txt
。
另外,如果>> temp.txt
將標準輸出附加到temp.txt
而不覆蓋已存在的內容,則> temp.txt
將用新輸出覆蓋temp.txt
。
所有這些都假設你使用的是unixish(比如Linux或者OSX)並且你的系統shell是Bourne-ish(比如bash)。
如果你想自己處理所有的I/O而不是依靠system
和臨時文件,你也可以切換到Open3。使用Open3是更多的工作,但它可能是值得的,或者它可能不是。
非常感謝朋友......它的工作,自3小時以來,我一直把時間花在這件事上。非常感謝你...:) – wani