![Evite detectar errores en un script de shell](https://rvso.com/image/89179/Evite%20detectar%20errores%20en%20un%20script%20de%20shell.png)
Tengo un script que compila un programa. Este programa primero compila el código fuente usando configure && make
comandos y luego ejecuta algunas pruebas usando make test
. Este script también se utiliza set -e
para detectar errores.
Ahora, lo que quiero hacer es mantener set -e
la configuración en el script y continuar ejecutándolo cuando make test
encuentre algunos errores. Intenté usar make -k test
para ejecutar las pruebas incluso cuando encuentra errores, pero el set -e
comando lo detecta y se detiene.
También sé qué pruebas van a fallar, entonces, ¿hay alguna forma de decirle al script que omita detectar estos errores?
Respuesta1
make test || true
p.ej
#!/bin/sh
set -e
echo hello
make test || true
echo done
Resultará en
hello
make: *** No rule to make target `test'. Stop.
done
En este caso, el error fue una regla faltante (sin Makefile :-)) pero podemos ver que el script continúa.
Respuesta2
set -e
se puede voltear con set +e
.
#!/bin/sh
set -e
configure && make
set +e
make test
...