Linux系统之Shell脚本:for、while循环及脚本实操
目录
一.for循环
1.基本格式
2.类C语言格式
二.while循环
1.基本格式
2.死循环语句
三.跳出循环
1、continue跳出循环
2.break跳出循环
四.常用循环脚本实例
1.循环ping测试某个网络
一.for循环
用于已知循环次数的场景
1.基本格式
for 变量名称(注意是名称不是变量$等) [ in 名称范围 ] (可以不写)
do
执行内容 若满足循环则做什么动作
done for循环结束标志
2.类C语言格式
for (( 表达式1 ;表达式2;表达式3 ))
do
执行内容 若满足循环则做什么动作
done for循环结束标志
表达式1:定义变量并赋值
表达式2:决定是否循环
表达式3:决定循环变量如何改变,决定循环什么时候结束
二.while循环
用于不知道循环次数,需要主动结束循环或达到条件结束循环。
1.基本格式
while [ 判断条件] 使用while循环满足条件执行do,不满足不执行
do
执行动作 while循环执行动作
done while循环结束标志
2.死循环语句
①while [1 -eq 1] 判断条件写一个永久为真的条件
do 一直执行do内的命令
done
②while true 直接写判断条件为真
do 一直执行do内的命令
done
③while : 判断条件为冒号也表示死循环
do 一直执行do内的命令
done
三.跳出循环
1、continue跳出循环
表示满足continue条件时跳出循环,但是不影响后续循环执行
2.break跳出循环
在某个循环中遇到break直接结束此次循环,但是不影响外边嵌套的循环。
break [数字] 结束数字中的几次循环,若为2则结束自己所在循环和外边嵌套的一层循环,若为3则结束自己所在循环和外边嵌套的2层循环
四.常用循环脚本实例
1.循环ping测试某个网络
需求:测试用户输入的某个32位网段是否可以ping通,且若可以ping通将此ip输出到文件host.txt中。
思路:
- 第一步读取用户输入的32位网段
- 第二步使用for循环生成用户输入网段的所有ip。
- 第三步使用ping命令在循环中测试用户输入网段内所有ip,注意指定ping包个数和超时结束时间,否则一直ping。
- 第四步将循环检查网络连通性放入后台执行