根据维基百科,以下是一个非常优雅的 bash fork 炸弹:
:(){ :|:& };:
它是如何工作的?
拆开来看,主要分为三大块:
:() # Defines a function, ":". It takes no arguments.
{ ... }; # The body of the function.
: # Invoke the function ":" that was just defined.
在体内,该函数被调用两次并且管道处于后台;进程上的每次连续调用都会产生更多对“:”的调用。这会迅速导致系统资源的爆炸性消耗,使一切陷入瘫痪。
请注意,无限递归地调用一次它还不够好,因为这只会导致原始进程出现堆栈溢出,这很混乱,但可以处理。
更人性化的版本如下所示:
kablammo() { # Declaration
kablammo | kablammo& # The problematic body.
}; kablammo # End function definition; invoke function.
Edit:威廉下面的评论是我上面所说的更好的措辞,所以我进行了编辑以纳入该建议。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)