Eu tenho um script que compila um programa. Este programa primeiro compila o código-fonte usando configure && make
comandos e depois executa alguns testes usando make test
. Este script também é usado set -e
para detectar erros.
Agora, o que eu quero fazer é manter set -e
definido no script e continuar executando o script quando make test
encontrar alguns erros. Tentei usar make -k test
para fazer os testes rodarem mesmo quando encontra erros, mas é capturado pelo set -e
comando e é interrompido.
Também sei quais testes irão falhar, então existe alguma maneira de dizer ao script para pular a captura desses erros.
Responder1
make test || true
por exemplo
#!/bin/sh
set -e
echo hello
make test || true
echo done
Vai resultar em
hello
make: *** No rule to make target `test'. Stop.
done
Neste caso a falha foi uma regra faltante (sem Makefile :-)) mas podemos ver que o script continua.
Responder2
set -e
pode ser invertido com set +e
.
#!/bin/sh
set -e
configure && make
set +e
make test
...