为什么不用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赋值会先清空,在赋值,所以有一定概率能看到,有一定的概率值清空了,就看不到了。