2012-05-16 43 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