循环
循环含义
将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件
重复运行次数
- 循环次数事先已知
- 循环次数事先未知
常见的循环的命令:for, while, until
for循环
执行机制(遍历): 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束
for 已知循环次数
for (变量) 循环次数(取值列表)
do
需要循环的事件
done
###############################################
for (( 表达式1; 表达式2; 表达式3 )); do 命令; done
#################################################
for ((expr1;expr2;expr3))
do
command
done
- expr1:定义变量并赋初值
- expr2:决定是否循环
- expr3:决定循环变量如何改变,决定循环什么时候退出
**循环出0到10之间的整数**
法一:
#!/bin/bash
for i in {1..10}
do
echo $i
done
法二:
#!/bin/bash
for i in $(seq 1 10)
do
echo $i
done
**批量创建用户并修改密码**
#!/bin/bash
for user in {1..10}
do
echo stu${user}|xargs -n1 useradd
echo "123123"|passwd --stdin stu${user}
done
while循环
while循环特点:
- 重复测试某个条件,只要条件成立则反复执行
- 常在不知道范围的时候成立
格式: while 条件测试操作 do 命令序列 done
当命令判断为假时停止
求和(1-100)
#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
let sum+=$i
let i+=2
done
echo $sum
猜数字
#!/bin/bash
pc_num=$[RANDOM%3+1]
count=0
while true
do
read -p "请输入一个数字:" user_num
if [ $user_num -eq $pc_num ]
then
echo "答对啦"
break
elif [ $user_num -gt $pc_num ]
then
echo "你的数字太大了"
else
echo "你的数字太小了"
fi
let count++
done
echo 你输入的次数为:$count
until循环
用法: 重复测试某个条件,只要条件不成立则反复执行
格式:
until 条件测试操作
do
命令序列
done
求和(1-100)
#!/bin/bash
sum=0
i=0
until [ $i -gt 100 ]
do
sum=$[sum+i]
let i++
done
echo "{1..100}的和:$sum"
continue break
break和continue都是用来控制循环结构的,主要是停止循环。
break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。 这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
continue continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。 可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
continue和break使用方法:
break:
1、语法 break 将用于以下break语句退出循环:
2、break n 这里n指定的第n个封闭的循环退出。
continue:
1、语法 continue 和break语句一样,一个整数参数可以给continue命令跳过嵌套循环的命令。
2、continue n 这里n指定第n个封闭循环 continue 。