循环:重复执行一段代码的结构,通过循环,可以在满足一定条件下,多次执行相同的代码 遍历:对数据结构中每个元素都进行一次访问、操作、输出的过程
循环语句一般包含两个方面:
1.循环体,代码的总结构; 2.循环条件,当循环条件被满足时,循环体内的代码才会执行,条件不满足,循环结束。
循环的特点:
1.重复执行代码。 2.简化程序的逻辑,提高了程序的可读性和可理解性,降低了代码出错的可能性。 3.提高了代码的重复利用率。 4.提高了效率,循环可以自动化的让程序执行,减少了人工的干预,提高了效率
循环的作用:
为了批量的执行代码的一种方式,减少人工干预,提高工作效率
循环和遍历是结合在一起使用的 循环实际上是一种控制流程的结构,用于重复执行代码 遍历:对数据进行访问和操作的过程
循环语句:
for循环语句:读取不同的变量值,用来逐个执行同一组命令
1.for循环一般用于已知次数的循环
2.语法结构:
for [变量名] in [取值列表] do 命令序列(对取值范围内的变量进行特定的操作) done(循环结束的标志)
3.无限循环:for ((;;))
4.类c语言格式:
for ((表达式1;表达式2;表达式3)) / for ((i=1;=<=1=;1++)) do 命令序列 done
5.for [变量名] in {1..10}
批量执行命令
1.批量添加用户
调用user.txt的内容,批量添加文件中的用户名和修改密码
set -x:开启调试
set +x:结束测试
uesr.txt:
运行结果:
2.批量搜寻主机是否存在,将存在的主机放入hosts.txt文件中
调用ip.txt的内容,每个主机ping五次,把能ping通的ip地址放到hosts.txt文件中,不能ping通的显示不能ping通
ip.txt:
ping的过程我们可以把它丢到黑洞文件(/dev/null)中:
运行结果:
数字累加:
累加求和:每一次都是前一次的和,再加上当前循环的值,依次往后加,一直加到循环结束
1.实现{1..10}的累加
sum=$(($i+$sum)):累加
2.实现{1..100}的基数相加和偶数相加
双重循环:
转义符:
echo -n:表示不换行输出
echo -e :可以使用转义符
\b:理解为删除键
\n:换行,换一行输出
\t:相当于tab键的空格
\c:不换行输出,字符过长,会导致后面的字符不输出
1.做一个乘法口诀表
第一次的for循环表示执行了几次循环,则表示行数;第二次的for循环表示每次循环有几列,则表示列数
循环控制语句:
break:一旦触发了break,整个循环会立刻跳出,即使后面还有循环条件,也不再执行了,整个循环结束
continue:一旦触发continue,只会跳出这一次循环,如果后面的循环条件依然存在,继续执行
continue后面的数字代表控制循环的层数
exit:直接退出,后续代码不再执行
while循环语句:while满足条件执行循环,不满足结束循环
用于不知道循环次数,需要主动结束循环或者达到条件循环的场景。
格式:
while [ 条件判断 ] do 命令序列 done
做一个100以内所有数的累加:
let i++ :让变量自增不然会陷入死循环
死循环的方式:
while true while [ 1 -eq 1 ]
随机变量:
$RANDOM:表示一个随机整数 $RANDOM范围值:0——32767 $((RANDOM%100+1)) 1-100 $((RANDOM%1000+1)) 1-1000
做一个猜数字游戏:
until语句:重复测试某个条件,只要条件不成立则反复执行
当判断条件不成立时,才进行循环,条件成立,终止循环
格式:
until [ 条件测试语句 ] do 命令序列 done
做一个10以内所有数的累加:
实验:
1.ping一个网段,ping通的提示“ip is offline”并记录在/opt/while/hosts.txt文件中,ping不通的提示“ip is offline”
{ }&:并行执行
2.利用循环把/opt/test目录下的.txt文件的内容合并到一个文件
3.shell计算器:整数的运算,加减乘除
4.商场购物:
淘宝中有一家店: 衣服 500 裤子 400 鞋子 300 帽子 200 袜子 100 每次选购完成之后都要提示用户是否继续购买,如果用户不买了,要提示结算金额,你消费了多少 如果继续买,就继续添加商品,最后也要给一个总金额