浅谈shell中的while true


在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打印一次当前时间:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值