Quando provo ad eseguire mail
dall'interno una funzione in uno script bash, crea qualcosa di simile a una bomba a forcella. Per chiarire, questo crea il 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 volte puoi semplicemente uccidere il comando e questo ucciderà i processi figlio, ma a volte dovrai farlo killall -9
.
Non importa se la posta è stata inviata o meno. La bomba a forcella viene creata in entrambi i modi. E non sembra aggiungere alcun controllo per il codice di uscita, ad esempio if ! [ "$?" = 0 ]
, aiuta.
Ma lo script seguente funziona come previsto, o genera un errore o invia la posta.
#!/bin/bash
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
exit 0
Perché succede? E come faresti per controllare il codice di uscita del comando mail?