免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2881 | 回复: 14
打印 上一主题 下一主题

着了网中人这老魔头的道 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-02-26 02:39 |只看该作者 |倒序浏览
那天闲来无事,无意中看到网中人的签名挡:這個別亂跑!好奇會死人的!
心里纳闷,就这几个标点符号,跑跑怎么会死人呢?结果就不提了。还好
我是在cygwin下跑,logout windows后就没事了。

现在回想起来,其实我要是知道shell里冒号可以用作function名字就不会
冒冒失失的着了道。

  1. :() { :|:& }; :
复制代码

写成规范的shell script应该是


  1. function recur  {
  2.     recur | recur &
  3. }

  4. recur

复制代码


shell编程还是挺好玩的。

论坛徽章:
0
2 [报告]
发表于 2007-02-26 05:10 |只看该作者
大雪中被困图书馆,只好自说自话。

我想驯服网中人的script,试了下这个:
  1. :() { echo $$; read; :|:& }; :
复制代码

原指望靠read挡一下势头,结果死得更惨,动用了电源开关。

还是用sleep比较管用:
  1. :() { sleep 10; ps -ef; :|:& }; :
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-02-26 08:48 |只看该作者
他签名的第二行就是解药。
以前有人和你一样好奇。

论坛徽章:
0
4 [报告]
发表于 2007-02-26 09:54 |只看该作者
我也试了一下,环境solaris 8,bash 2.03
终端很快就掉下来了,在CONSOLE上看了一下,不断的出错信息

以root login,pkill -u uid bash,然后又是一堆出错信息,就OK了

论坛徽章:
0
5 [报告]
发表于 2007-02-26 10:10 |只看该作者
原帖由 cymx2002 于 2007-2-26 08:48 发表
他签名的第二行就是解药。
以前有人和你一样好奇。


解药在文斗死下cygwin一点没有用.  键盘输入一点没反应.

论坛徽章:
0
6 [报告]
发表于 2007-02-26 10:43 |只看该作者
  1. :() { echo $$; read; :|:& }; :
复制代码

这句应该是没问题的,read默认是阻塞的,除非您的环境下设置了
  1. stty -icanon min 0 time 0
复制代码

论坛徽章:
0
7 [报告]
发表于 2007-02-26 11:23 |只看该作者
原帖由 一梦如是 于 2007-2-26 10:43 发表
  1. :() { echo $$; read; :|:& }; :
复制代码

这句应该是没问题的,read默认是阻塞的,除非您的环境下设置了
  1. stty -icanon min 0 time 0
复制代码


我开始也是这么想的,可是忘了把 echo 语句删掉,结果 echo的输出喂了read,自己把自己的护身符给破了。

论坛徽章:
0
8 [报告]
发表于 2007-02-26 15:59 |只看该作者
echo和read在这里没有关系,read不会从echo获得输入的,您应该考虑其他可能引发此问题的原因。单纯从shell角度,此句应该阻塞在第一次read那里。

论坛徽章:
0
9 [报告]
发表于 2007-02-26 21:08 |只看该作者
楼上所言极是,可是有没有想过,read 第一次阻塞时打入一个ENTER,会出现什么样情形呢?

论坛徽章:
0
10 [报告]
发表于 2007-02-26 21:44 |只看该作者
那就over了,因为:,管道后面那个read会从管道获得输入。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP