shell 之 for循环详解

一、for循环介绍

1)for循环又叫条件循环,又叫做for i in是for的一种语法,为了节省时间,节省内存。

2)循环的优点:

1、节省内存

2、结构更清晰

3、节省时间成本

二、for语法的三种赋值方式

for语法一:

1、for直接赋值格式:

for i in a b c....

do

commands(代码块)

done

i为变量,in为赋值:把a b c...赋值给i

2、使用命令赋值

例如:

for i in `seq 1 9` do echo $i done

 

3、赋值是一个字符串

例如:

for i in liu xuelu is very good

do

echo "word: $i"

done

 

 

语法二:c语言的for命令

格式:

for ((变量;条件;自增减运算 )) do 代码块 done

1、例如:单变量c格式语法

for ((i=1;i<10;i++))

do

echo $i

sleep 1 #每秒显示一次

done

注:i++为i=i+1表示列出从1-9

2、多变量c格式语法

for (( n=10,m=0;n<10,m>0;n--,m++))

do

echo -e "$n\t$m"

done

注:多变量时:变量之间用逗号隔开,变量与条件用分号隔开

注:一定避免死循环,不然CPU会跑满。

 

三、循环控制语句

注:一定避免死循环,不然CPU会跑满。

1、sleep N 脚本执行到该步休眠N秒,脚本节奏控制

例如:监控主机存活的脚本

for ((;;))
   do
     ping -c1 $1 &>/dev/null
     if [ $? -eq 0 ];then
       echo -e "$(date +"%F %H:%M:%S") : $1 is \033[34m up \033[0m"
     else
       echo -e "$(date +"%F %H:%M:%S") : $1 is \033[31m down \033[0m"
     fi
       sleep 2
done

 

2、continue 满足条件后跳过循环中的某次循环

例如:

for (( i=1;i<9;i++ )) #循环1-9

do

if [ $i -eq 6 ]

then

continue #跳过等于6这次循环

fi

echo $i

sleep 1 #输出间隔1秒

done

 

3、break 跳出循环继续执行后续代码

 

例如:要求用户输入一个字母,当输入Q的时候退出。

for ((;;))

do

read -p "请输入一个字母:" ch

if [ $ch == "Q" ];then

break #终止本循环

else

echo "输入不正确"

fi

done

 

4、注:如果循环多层嵌套,循环从里到外排序1-N,本身循环为break 1,外一层为break 2 ,以此类推,如果想要跳出某层循环

就 写 break N

例如:

for ((i=1;i<100;i++))

do

echo "$i"

for ((;;))

do

echo "hello"

break #跳出内循环,如果为break 2则跳出上一层循环

done

sleep 3

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值