Los comandos Bash con salida redirigida no finalizan

Los comandos Bash con salida redirigida no finalizan

Tengo un script bash muy simple con algunos comandos ejecutados en serie. La salida de cada comando se redirige a su propio archivo de registro. Algo como esto

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

Ahora, cuando ejecuto este script, comienza perfectamente, pero cuando finaliza el primer comando (el archivo de registro muestra que se ejecutó la última línea del programa) el proceso no termina. Tengo que eliminarlo manualmente antes de que el script pase a la siguiente línea (y cree sys.b.log).

¿Es así como esperaría que se comportara este script (no sé mucho sobre bash), o es un comportamiento inesperado, y debería buscar el problema en otra parte? Si es importante, el comando real es "java", con varios parámetros.

Respuesta1

Es una buena idea utilizar trampas de salida en tus scripts de bash.

Algunos fragmentos:http://redsymbol.net/articles/bash-exit-traps/

Además, consulte esta publicación sobre cómo escribir scripts de shell sólidos y aspectos a tener en cuenta:http://www.davidpashley.com/articles/writing-robust-shell-scripts/

información relacionada