带有重定向输出的 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/

相关内容