今天看到的一个Linux shell命令,但是我先说下,这个命令是危险的,所以没事的时候不要随便执行,出现了各种危险不要怪我没有提前告诉你哈。
DANGER!
命令代码
:(){ :|: & };:
命令解析1
:() 意思是定义了一个函数,这个函数的名字叫做 : ,可能大家还不知道,冒号也可以定义为一个函数,重点是冒号后面是一个()。这个指定了冒号就是一个函数。
{ :|: & } 这句的意思是我们执行函数 : ,并且把这个函数的输出结果送给 : ,然后 & 这个的意思就是把前面这句话运行在后台。
:(){ :|: & } 连起来这个就是定义一个递归函数,不断的调用,调用,调用……
; 这个符号就是一个分隔符,意思就是上面作为一个语句,下面是另一个语句。
: 最后是触发运行一次 : 这个函数。
另一种解析
:(){ :|:& };:
\_/| |||| ||\- 执行函数| | |||| |\- 函数定义结束| | |||| \- 和 { 相互呼应| | |||\- 后台执行| | ||| 这样父进程被杀死了自己也不会被杀死| | ||\- 接收前一个命令的输出| | || | | |\- 接收输出| | \- 执行函数 :| \- 执行函数\- 函数定义
实际效果如下
总结
虽然是一个递归函数,但是如果我们在这个吃掉系统所有资源之前,把它干掉,是可以避免系统重启的。如果感兴趣的同学,可以测试看看。
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
嵌入式Linux
微信扫描二维码,关注我的公众号