循环语句:
一定要有跳出循环条件
循环条件:
1.已知循环的次数(新来十个人,就要新建十个账号
2.未知循环的次数,但是要有跳出循环条件(对象生气,要道歉到原谅为止)
for(已知次数)
限定执行: while条件成功执行 ,until条件不成功执行
for
语法1:for i(变量名) in 循环列表;do 命令序列;done
循环列表:只和你循环的额次数有关
循环列表有6个值循环6次
循环列表的表现形式:
{1..10}
{1..100}
{0..100..2} :从0开始到100结束,每次加2(步长为2),打印的都是偶数。
{1..100..2}: 从1开始到100结束,每次加2(步长为2),打印的都是奇数。
面试题:
将某文件夹下的所有.txt结尾的文件后缀改为.bak
#!/bin/bash for i in *.txt do pre=`echo $i|cut -d"." -f1` 提取"."为分隔符的第一列 mv $i ${pre}.bak done
将1到100相加
#!/bin/bash sum=0 i=0 for i in {1..100}; do sum=$[sum+i]; done
检测一整个网段的主机是否存活
192.168.116.0
将存活的主机放在同一个文件中
将不存活的主机放在另一个文件中
#!/bin/bash
ip=192.168.116.
for i in {1..254}
do
{
ping -c1 -w1 [ ${ip}${i} ] &>/dev/null
if [ $? -eq 0 ]
then
echo ${ip}${i} >> /data/hoston(存活)
else
echo ${ip}${i} >> /data/hostoff(不存活)
fi
}&
done
直角三角形
99乘法表
语法2:for
((表达式1;表达式2;表达式3))
表达式1:定义变量并赋值
表达式2:决定是否循环
表达式3:决定循环变量如何改变,决定循环什么时候退出
设置1+1一直+到100得出结果
#!/bin/bash sum=0 i=0 for((i=0;i<100;i++))#取一个初始值i=0;如果i小于100;在i的值上加一,再回到表达式1继续执行,直到表达式2不满足跳出循环。 do let sum+=i done echo $sum
while
重复测试某个条件,只要条件成立则反复执行
while 判断条件(条件成立)继续循环;(条件不成立)跳出循环
do
命令序列
done
判断条件
((i=0;1<=100;i++))
死循环命令:一直执行
1.while true
2.while :
示例
批量添加用户
- 用户名称以stu开头,按数字顺序进行编号
- 一共添加20个用户,即stu1、 stu2、…、stu20
- 初始密码均设为123456
面试题
1到100相加
#!/bin/bash i=0 sum=0 while [ $i ''-le 100 ] do sum=$[sum+i] let i++ done echo $sum
猜随机数
until
until 循环与 while 循环类似,while 循环能实现的脚本 until 同样也可以实现,但区别是while 循环在条件为真时继续执行循环,而 until 则是在条件为假时执行循环
语法:
until 条件测试操作 do 命令序列 done
每5秒给用户发消息
#!/bin/bash if [ $# -eq 0 ] then echo "请在脚本后输入 用户名和要发送的消息" fi until w |grep $1 -q do echo "用户不在线" sleep 5 done echo $2|write $1
双重循环及跳出循环
break跳出单个循环 break n 数字数字是几代表跳出n层循环
continue终止某次循环中的命令,但是不会完全终止命令
exit 直接退出脚本