Cuando intento ejecutar mail
desde dentro una función en un script bash, crea algo similar a una bomba tenedor. Para aclarar, esto crea el problema:
#!/bin/bash
mail() {
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
}
mail
exit 0
A veces puedes simplemente matar el comando y matará los procesos secundarios, pero a veces tendrás que hacerlo killall -9
.
No le importa si el correo fue enviado o no. La bomba tenedor se crea de cualquier manera. Y no parece que agregar ninguna verificación para el código de salida, como if ! [ "$?" = 0 ]
, ayuda.
Pero el siguiente script funciona según lo previsto, ya sea que genera un error o envía el correo.
#!/bin/bash
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
exit 0
¿Por qué pasó esto? ¿Y cómo harías para verificar el código de salida del comando de correo?