bash shell 死循环

时间:2019-11-20 08:53:00  来源:igfitidea点击:

在linux shell脚本中,如何编写死循环?

死循环(无限循环)是一组无休止一直执行的指令。由于循环没有终止条件,或者有一个永远无法满足的条件,导致这些指令一直执行。

使用while的死循环语法如下:

#!/bin/bash
while :
do
	echo "Press [CTRL+C] to stop.."
	sleep 1
done

请注意:是空命令。
空命令不执行任何操作,并且其退出状态始终设置为true。

我们可以修改成下面的内容以提高可读性:

#!/bin/bash
while true
do
	echo "Press [CTRL+C] to stop.."
	sleep 1
done

或者将while循环写在1行:

while :; do echo 'Hit CTRL+C'; sleep 1; done

或者

while true; do echo 'Hit CTRL+C'; sleep 1; done

使用for语句的无限循环示例

#!/bin/bash
 
for (( ; ; ))
do
   echo "Pres CTRL+C to stop..."
   sleep 1
done

如何退出循环?

当满足某些条件时,可以使用break语句从for或while循环中断退出:

for (( ; ; ))
do
   echo "Pres CTRL+C to stop..."
   sleep 1
   if (判断条件)
   then
	break       	   # 退出循环
   fi
done

或者

while :
do
   echo "Pres CTRL+C to stop..."
   sleep 1
   if (判断条件)
   then
	break       	   # 退出循环
   fi
done

还可以将case语句和break语句结合使用:

while :
do 
     case $var in
       yes) do something ;;
       no) do something ;;
       quit) break ;;        # 退出循环
     ease
done