当前位置: 技术问答>linux和unix
为什么不用sleep就打印不出来结果
来源: 互联网 发布时间:2017-05-02
本文导语: 正在学习shell,在关于捕捉信号的地方,按照书上的程序,run了一下,发现有时候按‘ctrl-c’能打印出LOOP的值,有时候打印不出来; 后来在网上找到了相关的例子,发现书上少了“sleep 1”,加上之后,就可以每次按...
正在学习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
后来在网上找到了相关的例子,发现书上少了“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
|
不加sleep你多执行几次也能看到,这个是因为shell赋值会先清空,在赋值,所以有一定概率能看到,有一定的概率值清空了,就看不到了。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。