Código de salida de trampas en Bash
Esto esmyscript.sh
:
#!/bin/bash
function mytrap {
echo "Trapped!"
}
trap mytrap EXIT
exit 3
Y cuando lo ejecuto:
> ./myscript.sh
echo $?
3
¿Por qué el código de salida del script, el código de salida con la trampa es el mismo que sin él? Por lo general, una función devuelve implícitamente el código de salida del último comando ejecutado. En este caso:
echo devuelve 0Yo esperaríamytrap
para devolver 0Ya quemytrap
es la última función ejecutada, el script debe devolver 0¿Por qué este no es el caso? ¿Dónde está mal mi pensamiento?