一、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