Wenn ich versuche, mail
eine Funktion in einem Bash-Skript auszuführen , entsteht etwas Ähnliches wie eine Gabelbombe. Zur Verdeutlichung entsteht dadurch das Problem:
#!/bin/bash
mail() {
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
}
mail
exit 0
Manchmal können Sie den Befehl einfach beenden und die untergeordneten Prozesse werden beendet, aber manchmal müssen Sie dies tun killall -9
.
Es ist egal, ob die Mail gesendet wurde oder nicht. Die Gabelbombe wird so oder so erzeugt. Und es scheint nicht hilfreich zu sein, den Exit-Code zu überprüfen if ! [ "$?" = 0 ]
.
Das folgende Skript funktioniert jedoch wie beabsichtigt. Entweder gibt es einen Fehler aus oder es sendet die E-Mail.
#!/bin/bash
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
exit 0
Warum passiert das? Und wie würden Sie den Exit-Code des Mail-Befehls überprüfen?