Когда я пытаюсь выполнить mail
функцию изнутри скрипта bash, она создает нечто похожее на бомбу-вилку. Чтобы уточнить, это создает проблему:
#!/bin/bash
mail() {
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
}
mail
exit 0
Иногда вы можете просто убить команду, и она убьет дочерние процессы, но иногда вам придется killall -9
.
Неважно, было ли отправлено письмо или нет. Вилка бомба создана так или иначе. И это не похоже на добавление какой-либо проверки кода завершения, например if ! [ "$?" = 0 ]
, подсказок.
Но приведенный ниже скрипт работает как задумано, либо выдает ошибку, либо отправляет почту.
#!/bin/bash
echo "Free of oxens" | mail -s "Do you want to play chicken with the void?" "example@example.org"
exit 0
Почему это происходит? И как бы вы проверили код выхода команды mail?