Eu tenho um script bash muito simples com alguns comandos executados em série. A saída de cada comando é redirecionada para seu próprio arquivo de log. Algo assim
(command --param a > sys.a.log 2>&1)
(command --param b > sys.b.log 2>&1)
(command --param c > sys.c.log 2>&1)
Agora, quando executo este script, ele inicia perfeitamente, mas quando o primeiro comando termina (o arquivo de log mostra a última linha do programa executada) o processo não termina. Tenho que eliminá-lo manualmente antes que o script passe para a próxima linha (e crie o sys.b.log).
É assim que você espera que este script se comporte (não sei muito sobre o bash) ou é um comportamento inesperado, e devo procurar o problema em outro lugar. Se for importante, o comando real é "java", com vários parâmetros.
Responder1
É uma boa ideia usar armadilhas de saída em seus scripts bash
Alguns trechos:http://redsymbol.net/articles/bash-exit-traps/
Além disso, confira esta postagem sobre como escrever scripts de shell robustos e coisas a serem observadas:http://www.davidpashley.com/articles/writing-robust-shell-scripts/