Obtenha o código de saída do comando anterior antes do pipe [duplicate]

0

Eu tenho isso:

node ${SUMAN_RUNNABLE} | tee -a run.sh.log
EXIT_CODE=$?;

mas parece que o código de saída é sempre 0 porque tee está fornecendo o código e não o executável do nó.

Existe uma maneira de capturar o código de saída do executável do nó em tal cenário?

    
por Alexander Mills 27.06.2017 / 06:47

1 resposta

1

De link :

There is an internal Bash variable called $PIPESTATUS; it’s an array that holds the exit status of each command in your last foreground pipeline of commands.

<command> | tee out.txt ; test ${PIPESTATUS[0]} -eq 0

Or another alternative which also works with other shells (like zsh) would be to enable pipefail:

set -o pipefail
...

The first option does not work with zsh due to a little bit different syntax.

    
por 27.06.2017 / 06:52