Piping a saída do comando para tee, mas também salve o código de comando de saída [duplicado]
Esta pergunta já tem uma resposta aqui:
Pipe a saída e capture o status de saída no Bash 15 respostasEu tenho um script de shell no qual envolvo um comando (mvn clean install), para redirecionar a saída para um arquivo de lo
#!/bin/bash
...
mvn clean install $@ | tee $logfile
echo $? # Does not show the return code of mvn clean install
Agora semvn clean install
falha com um erro, quero que meu script de shell wrapper também falhe com esse erro. Mas como estou canalizando toda a saída para tee, não consigo acessar o código de retornomvn clean install
, então quando eu acessar$?
depois, é sempre 0 (desde o sucesso do tee
Tentei deixar o comando gravar a saída de erro em um arquivo separado e verificar isso depois, mas a saída de erro do mvn está sempre vazia (parece que ele grava apenas no stdout
Como posso preservar o código de retorno demvn clean install
mas ainda canaliza a saída para um arquivo de lo