当我尝试mail
从bash脚本中的函数内部执行时,它会创建类似于fork炸弹的内容。为了澄清,这会引起问题:
#!/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命令的退出代码?
10
这称为递归。
—
雅库耶