这个命令:(){:|:&};:是什么?[重复]


Answers:


5

这是一个叉炸弹。实际上,当我说话时,我的白板上写着(作为一个笑话)。不要运行它。

:()         # define a function named :, () defines a function in bash
{           
    : | :;  # the pipe needs two instances of this function, which forks two shells
}
;           # end function definition
:           # run it

因此,第一次运行产生2个子壳,然后每个子壳再运行2个子壳......

:是bash中的内置命令。这是一种“空”无操作命令。在有评论字符之前,它曾经是评论字符。现在,它作为无操作器有一个很小的用途,但在这里真的使用,因为它更神秘,你看,:()并认为WTH是那样的?


:它不是一个运算符,它是一个不做任何事情的内置命令。该定义定义了一个名为的函数:,它隐藏了内置命令。这是一个更清晰和同等的版本,不要运行这个 bomb() { bomb | bomb & ) ; bomb
基思汤普森

为什么每个人都说不运行这个?Mac OS X太聪明或太破碎,不会造成任何损害。只是一堆-bash: fork: Resource temporarily unavailable,然后提示回到一秒钟左右。
Daniel Beck

@DanielBeck我(知情)我多年前在Solaris上运行它,需要强制注销,虽然我实际上只是重新启动(我的桌面Sparc)。
Rich Homolka 2013年

分叉指数用户创建了内存泄漏。根据操作系统,随之而来的是欢闹或灾难。Mac知道用户会做任何事情吗?ulimit设置为阻止它工作?
Fiasco Labs 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.