2011-03-18 116 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脚本调用在命令行上要简单得多。