Comandos Bash com saída redirecionada não terminam

Comandos Bash com saída redirecionada não terminam

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/

informação relacionada