Comandos bash com saída redirecionada não terminam

0

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.

    
por Peter 10.08.2016 / 23:46

1 resposta

0

É 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

    
por 07.10.2016 / 16:21