Pular a captura de erros em um script de shell

0

Eu tenho um script que compila um programa. Este programa primeiro compila o código-fonte usando os comandos configure && make e executa alguns testes usando make test . Este script também usa set -e para capturar erros.

Agora, o que eu quero fazer é manter set -e definido no script e continuar executando o script quando make test encontrar alguns erros. Eu tentei usar make -k test para fazer os testes rodarem mesmo quando encontrou erros, mas ele foi detectado pelo comando set -e e parou.

Eu também sei quais testes vão falhar, então existe alguma maneira de dizer ao script para pular esses erros?

    
por Abhimanyu Saharan 22.06.2016 / 19:53

2 respostas

5
make test || true

por exemplo,

#!/bin/sh
set -e
echo hello
make test || true
echo done

resultará em

hello
make: *** No rule to make target 'test'.  Stop.
done

Nesse caso, a falha era uma regra ausente (sem Makefile :-)), mas podemos ver que o script continua.

    
por 22.06.2016 / 20:07
2

set -e pode ser invertido com set +e .

#!/bin/sh
set -e
configure && make
set +e
make test
...
    
por 22.06.2016 / 19:58