2012-05-16 19 views
0

我想在OSX上的终端上运行一个java命令,虽然它的工作原理没有问题,如果我只是运行命令我也想通过电子邮件发送结果文件,但如果我添加一个管道后java命令并使用mutt将它作为附件发送,它不会等到java完成之后才能继续下一个管道,因为它试图立即执行它!运行java管道到mutt

如何让它等到java完成?

试图让我的问题有点更加清晰:

我正在寻找的是运行我的java命令其中的文件导出到一个目录,一旦多数民众赞成做我想要gzip压缩,然后电子邮件的能力它与mutt的发行。我没有工作的唯一部分是正确的步进终端不会等到java命令完成之后才移过管道。另外我的我的Java脚本有输出到一个文件的代码,这些文件很容易导入,通过^到excel分隔。

java -classpath <pathtojavafiles> | find /Users/tb582/Desktop/scripts/output/*.txt -type f -maxdepth 1 -cmin -1 -exec gzip {} \;| find /Users/tb582/Desktop/scripts/output -type f -maxdepth 1 -not -cmin -2 -exec mv {} /Users/tb582/Desktop/scripts/output/archive \; | mutt -a /Users/tb582/Desktop/scripts/output/*.gz -s "Hourly Report" -- <emailaddress>

+1

请显示您的命令。 – michael667

+1

请更新您的问题,而不是发表评论。 – beerbajay

回答

1

如果你想等待完成的命令,你应该使用& &;或分开命令。管道|当你希望一个程序的文本输出作为下一个的输入时。

+0

这可能就是我正在寻找的东西:'java -classpath **; ** find /Users/tb582/Desktop/scripts/output/.txt-type f -maxdepth 1 -cmin -1 -exec gzip { } \; | find/Users/tb582/Desktop/scripts/output -type f -maxdepth 1 -not -cmin -2 -exec mv {}/Users/tb582/Desktop/scripts/output/archive \; | mutt -a /Users/tb582/Desktop/scripts/output/.gz -s“小时报告” - '我会稍微报告一下状态。 – Tony

+0

那么ceritanly工作,以便它在Java完成后调用其他命令,但现在我得到这个错误'完成! Can not stat /Users/tb582/Desktop/scripts/output/*.gz:没有这样的文件或目录 /Users/tb582/Desktop/scripts/output/*.gz:无法附加文件。 – Tony

+0

您可能在Unix和Linux或超级用户上有更多的运气问题 – artbristol