在shell中实现死循环,一般都会用
while true
,那你知道执行while true时,进程都在做些什么吗?
shell实现死循环
while true
do
# do something here
done
以上是shell中实现死循环最常用的方法,今天要说的不是如何实现死循环,而是执行while true时,程序做了哪些事情。
你了解while true中的true吗
可能大部分人都会把true
当成shell的关键字,其实在linux下,它是一个可执行文件,用which true
可以看到
执行true时,它什么也不做,只返回表示成功的
shell中0表示执行成功,非0表示执行失败。
同样的,false
也是linux下的一个可执行文件
执行false时,它也什么都不做,只返回表示失败的
重新认识true和false
在终端下输入man true
,可以看到关于true的帮助手册
同样,man false
可以看到关于false的帮助手册
while true存在的问题
至此,相信你对true和false有了一个新的认识。回到主题,执行while true时,会起一个进程,执行完之后销毁,因此可能会有性能上的消耗,如果对性能有要求,可以使用shell内置的:
来实现死循环,即while :
和while true
一个效果。
实现shell死循环的另一种方法
while :
do
echo $(date +'%F %T')
sleep 2
done
执行以上代码,会每隔2s打印一次当前时间: