快速业务通道

好奇心引发的问题

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-17

在CU上看到一个的签名

  1. :() { :|:& }; : # <--好奇心害死人
  2. echo ''十人|日一|十十o'' | sed ''s/.../&\n/g'' # <--- 跟你講就不聽,再跑這個好了...

出于好奇,在测试机上试了一下.测试机果然不能动了.后面研究了一下.

我们暂且把这程序分成三段

一 ,------- :() { :|:& }

二,-------- ;

三,------- :

先来说一

shell函数有类格式 类似C的函数,比如

  1. a()
  2. {
  3. print ''a'';
  4. }

也就是说 :() { :|:& } 是创建一个函数,函数名为“:”.大家会觉得{}内为什么会没有“;”,回头解释.

再说二

“;” 在SHELL中的作用就是把两个命令连在一起输入而已 .举个例子

  1. # echo ''a'';echo ''b''
    a
    b

说一下三

上面说过了 1创建了函数 :

第三部分 “:”自然是执行函数“:”.

接下来再分解一

:() { :|:& }

当程序执行这个函数的时候,程序和函数名一样也就会循环执行.

而{}内的 :|:& 通过管道的形式再开启一个进程后台运行(&是后台运行,同时也有;的意思上文中的;可以省略)新进程拼命增加,面旧的进程进入循环也不会退出.

Empire CMS,phome.net

倒置机器挂了

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号