警告:恶意代码.不要试试这个.它出现在这里仅用于教育目的.
如果你在shell中输入这个shell片段,你的系统似乎停止了,你知道为什么吗?
:() { :|:& }; : #
Run Code Online (Sandbox Code Playgroud)
你唯一能做的就是重启你的系统..你能给我一些解释吗?
fal*_*tro 20
这是一个无休止的递归.你正在定义一个名为':'的函数,它调用自身并将自己的输出传递给它自己的另一个实例,然后围绕它.由于'&',管道也在后台分叉并执行.最后':'实际上启动了调用(分号只是结束了上一个命令,它定义了函数,换行也会在这里执行).
为了使它更清楚,这就是它的作用
foo() {
foo | foo &
}
foo
Run Code Online (Sandbox Code Playgroud)
它几乎是一个分叉炸弹,加上大量使用IPC资源.