具有重定向輸出的 Bash 命令未完成

具有重定向輸出的 Bash 命令未完成

我有一個非常簡單的 bash 腳本,其中有一些串行執行的命令。每個命令的輸出都會重定向到自己的日誌檔案。像這樣的東西

(command --param a > sys.a.log 2>&1)
(command --param b > sys.b.log 2>&1)
(command --param c > sys.c.log 2>&1)

現在,當我運行此腳本時,它可以完美啟動,但是當第一個命令完成時(日誌檔案顯示程式的最後一行已執行),進程不會終止。在腳本移至下一行(並建立 sys.b.log)之前,我必須手動終止它。

這是您期望這個腳本的行為方式嗎(我對 bash 不太了解),或者這是意外的行為,我應該在其他地方尋找問題嗎?如果重要的話,實際的命令是“java”,帶有一堆參數。

答案1

在 bash 腳本中使用退出陷阱是個好主意

一些片段:http://redsymbol.net/articles/bash-exit-traps/

另外,請查看這篇關於編寫健全的 shell 腳本以及需要注意的事項的文章:http://www.davidpashley.com/articles/writing-robust-shell-scripts/

相關內容