2011-03-18 40 views
0

我正在編寫一個應該執行以下操作的shell腳本。
- 運行,其產生輸出
的Java應用程序 - 運行產生輸出 外殼命令 - 收集兩個輸出和發送出去在電子郵件從Java應用程序和shell命令收集輸出

我的上述所有步驟的源代碼的控制。

是否有收集不同來源輸出的最佳做法?我應該將所有內容重定向到一個臨時文件嗎?我應該寫不同的輸出到不同的文件,然後連接它們嗎?每種方法的優缺點是什麼?

+0

您是否正在從Java或命令行執行該腳本? – 2011-03-18 18:21:41

+0

從命令行/ shell。 – Russell 2011-03-18 18:26:34

回答

0

如果你不擔心使用純Java您可以使用Runtime類執行shell命令withing的Java(通過exec)命令,這將返回你,你要麼getInputStreamgetOutputStream所以你Process對象然後可以在一個地方處理Java程序和shell命令的輸出,並執行任何您想要的操作(將其保存在內存中,並通過將輸出流重定向到您用來發送郵件的輸入流來直接發送它) ,另一個exec)或保存它或任何。

+0

這是個好主意。缺點是我的Java程序會意識到運行它的環境,並且便攜性較差。我想知道是否有其他選擇。謝謝。 – Russell 2011-03-18 18:28:09

0

我贊成使用第二包裝腳本其中

  • 調用java程序
  • 調用外殼腳本
  • 捕獲輸出到單個文件
  • 重新格式化該輸出
  • 合適郵寄出去其實
  • 郵寄

假設您使用的是unix shell,郵件/格式化和shell腳本調用在命令行上要簡單得多。

相關問題