我正在編寫一個應該執行以下操作的shell腳本。
- 運行,其產生輸出
的Java應用程序 - 運行產生輸出 外殼命令 - 收集兩個輸出和發送出去在電子郵件從Java應用程序和shell命令收集輸出
我的上述所有步驟的源代碼的控制。
是否有收集不同來源輸出的最佳做法?我應該將所有內容重定向到一個臨時文件嗎?我應該寫不同的輸出到不同的文件,然後連接它們嗎?每種方法的優缺點是什麼?
我正在編寫一個應該執行以下操作的shell腳本。
- 運行,其產生輸出
的Java應用程序 - 運行產生輸出 外殼命令 - 收集兩個輸出和發送出去在電子郵件從Java應用程序和shell命令收集輸出
我的上述所有步驟的源代碼的控制。
是否有收集不同來源輸出的最佳做法?我應該將所有內容重定向到一個臨時文件嗎?我應該寫不同的輸出到不同的文件,然後連接它們嗎?每種方法的優缺點是什麼?
如果你不擔心使用純Java您可以使用Runtime
類執行shell命令withing的Java(通過exec
)命令,這將返回你,你要麼getInputStream
和getOutputStream
所以你Process
對象然後可以在一個地方處理Java程序和shell命令的輸出,並執行任何您想要的操作(將其保存在內存中,並通過將輸出流重定向到您用來發送郵件的輸入流來直接發送它) ,另一個exec
)或保存它或任何。
這是個好主意。缺點是我的Java程序會意識到運行它的環境,並且便攜性較差。我想知道是否有其他選擇。謝謝。 – Russell 2011-03-18 18:28:09
我贊成使用第二包裝腳本其中
假設您使用的是unix shell,郵件/格式化和shell腳本調用在命令行上要簡單得多。
您是否正在從Java或命令行執行該腳本? – 2011-03-18 18:21:41
從命令行/ shell。 – Russell 2011-03-18 18:26:34