É uma boa ideia usar armadilhas de saída em seus scripts bash
Alguns trechos: link
Além disso, confira este post sobre como escrever scripts de shell robustos e coisas a serem observadas: link
Eu tenho um script muito simples com alguns comandos executados em série. A saída de cada comando é redirecionada para seu próprio arquivo de log. Algo parecido com isto
(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 esse script, ele é iniciado perfeitamente, mas quando o primeiro comando termina (o arquivo de log mostra a última linha do programa executada), o processo não é encerrado. Eu tenho que matá-lo manualmente antes que o script passe para a próxima linha (e crie sys.b.log).
É assim que você esperaria que esse script se comportasse (eu não sei muito sobre o bash), ou esse comportamento é inesperado, e eu deveria procurar outro lugar para o problema. Se for importante, o comando real é "java", com vários parâmetros.
Tags command-line bash