免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1610 | 回复: 8

关于循环、显示! [复制链接]

论坛徽章:
0
发表于 2003-03-29 01:46 |显示全部楼层
做了一个循环,不断显示一个图形,想在这个循环执行时,输入几个字符退出循环,但不中断程序,有什么办法吗?
谢谢!

论坛徽章:
0
发表于 2003-03-29 04:50 |显示全部楼层

关于循环、显示!

原帖由 "mymm" 发表:
做了一个循环,不断显示一个图形,想在这个循环执行时,输入几个字符退出循环,但不中断程序,有什么办法吗?
谢谢!


“做好的循环”长得啥样子?

论坛徽章:
0
发表于 2003-03-29 09:23 |显示全部楼层

关于循环、显示!

,就是长的啥样子,帅不帅,我红袖姐正找对象呢!
mm的话,就把玉照帖出来,laoxia.........

论坛徽章:
0
发表于 2003-03-29 11:53 |显示全部楼层

关于循环、显示!

如:
while true
do
    echo "a picture"
    sleep 1
    echo "other picture"
done

也就是不断显示两个图形,想在接到键盘输入时退出循环,怎么办?

论坛徽章:
0
发表于 2003-03-30 16:41 |显示全部楼层

关于循环、显示!

应该会有办法吧?!

论坛徽章:
0
发表于 2003-03-31 10:12 |显示全部楼层

关于循环、显示!

这样试试
#more 1.sh
trap "kill_ily" 1 2 3 4 15
kill_ily()
{
        who_am_i=`who am i|awk '{print $2}'`
        ps -ef|grep $who_am_i|grep ksh|sort -k 5|tail -1|awk '{printf("kill -9 %s",$2)}'|sh
}
sleep 2
./2.sh
echo "this is in 1.sh"

#more 2.sh
while true
do
echo "a picture"
sleep 1
echo "other picture"
done


运行1.sh,在它里面重启一个sh执行2.sh,偶用的是AIX,ksh,当它接到中断(偶这儿是Crtl+C)时,执行kill_ily(),这个函数将自己启的最后一个sh杀掉,就是把2.sh所在的sh杀掉,又回到1.sh里拉
偶测试过.不同操作系统要看看用的是什么shell,还有就是who am i 的输出可能不一样.

论坛徽章:
0
发表于 2003-04-01 03:07 |显示全部楼层

关于循环、显示!

想法不错,但有点问题!
在sort时,如果有当晚12:00以前的ksh进程,在12:00以后运行时会把不该kill的kill掉,对吗?

论坛徽章:
0
发表于 2003-04-01 08:14 |显示全部楼层

关于循环、显示!

是啊,是啊,要稍微改进一下.
偶观察了一下,用ps -ef看到的进程,如果不是今天的,时间上有时显示日期,有时显示时间,所以用sort -k5可能真有问题,一时也想不出什么办法,偷懒点,真用的话,不要从已有的界面执行,新开一个.

论坛徽章:
0
发表于 2003-04-01 08:21 |显示全部楼层

关于循环、显示!

不如这样,在2.sh前面加上echo $$ > file.tmp记录下自己的pid
在kill_ily()里直接awk '{printf("kill -9 %s",$1)}' file.tmp|sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP