首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

为何不用sleep就打印不出来结果

2013-11-21 
为什么不用sleep就打印不出来结果正在学习shell,在关于捕捉信号的地方,按照书上的程序,run了一下,发现有时

为什么不用sleep就打印不出来结果
正在学习shell,在关于捕捉信号的地方,按照书上的程序,run了一下,发现有时候按‘ctrl-c’能打印出LOOP的值,有时候打印不出来;
后来在网上找到了相关的例子,发现书上少了“sleep 1”,加上之后,就可以每次按‘ctrl-c’都打印出来了;
请问下高手,为什么不加sleep就打印不出来?

#!/bin/sh
#trap1
trap "my_exit" 2 
loop=0

my_exit()
{        
echo "you hit ctl=c, in  $loop"  --->如果没有sleep,有时候就只能打印到“in”这个单词就结束了
        echo "I will now exit"
        exit 1
}

while :
do 
   loop=`expr $loop + 1` 
   #sleep 1          -----> 这里需要加一个sleep 1,上面loop才能打印出来
done
shell,脚本,trap
[解决办法]
不加sleep你多执行几次也能看到,这个是因为shell赋值会先清空,在赋值,所以有一定概率能看到,有一定的概率值清空了,就看不到了。

热点排行