文章目录
引言
今天我们来看看循环语句的应用以及shell函数和数组
一、for语句的结构
- 读取不同的变量值,用来逐个执行同一组命令
for循环经常使用在已经知道要进行多少次循环的场景
for 变量名 in 取值列表 > for 收件人 in 邮件地址列表
do > do
命令序列 > 发送邮件
done > done
循环出1到6之间的整数
查看0…50的偶数
批量创建用户并修改密码
批量删除用户
根据IP地址列表检查主机的状态
设置密码 输错三次进行警告
概率小实验
嵌套循环 星星的格式
9*9乘法表
随机生成密码
二、while循环
- 重复测试某个条件,只要在条件成立则反复执行
while 条件测试操作
do
命令序列
done
1.continue和break的区别
- continue 终止每次循环中的命令,但是不会完全终止命令
- break 跳出单个循环 ,仅在"for" “while” 或"until"循环中有意义
(1)定义一个变量 猜大小
(2)使用while循环创建用户和密码
(3)猜数字小实验
(4)商店购物
#!/bin/bash
i=1
sum=0
while [ $i -le 5 ]
do
echo "本公主今天宠爱第$i家商店呢"
read -p "是否进入看看(yes/no)" doing
while [ $doing = "yes" ]
do
echo "1:衣服 ¥2000"
echo "2:鞋子 ¥5000"
echo "3:帽子 ¥1000"
echo "4:裤子 ¥3000"
read -p "请选择需要购买的商品序列号:" num
case $num in
1)
echo "衣服购买成功!"
expr $[ sum+=2000 ] &> /dev/null
;;
2)
echo "鞋子购买成功!"
expr $[ sum+=5000 ] &> /dev/null
;;
3)
echo "帽子购买成功!"
expr $[ sum+=1000 ] &> /dev/null
;;
*)
echo "裤子购买成功!"
expr $[ sum+=2000 ] &> /dev/null
;;
esac
read -p "是否继续进行购买(yes/no)" doing
done
let i++
if [ $doing = "no" ]
then break
fi
done
echo "今天您的购物总价为:$sum"
三. until 循环语句结构
用法: 重复测试某个条件,只要条件不成立则反复执行
只要while后面的命令退出状态为0,while循环就一直执行下去,until命令与while命令相似,唯一的区别在于,只要until后面的命令退出不为0,until循环就一直执行下去,也就是说,使用until语句重复执行一段代码直到条件为真为止,与while类似
格式:
until 条件测试操作
do
命令序列
done
1.计算0-50的和
[root@zhang until]# vim 50.sh
#!/bin/bash
i=1 //定义变量i=1
sum=0
until [ $i -eq 51 ] //$i等于51时停止执行
do
sum+1=i //sum=sum+i
let i++ //每次循环i+1
done
echo "$sum" //打印结果 $sum
四、Shell函数
- 将命令序列按格式写在一起
- 可方便重复使用命令序列
1.函数基本格式
[function] 函数名(){
命令序列
[return x] #使用return或exit可以显示的结束函数
}
或者 #也可以省略掉[function],它表示该函数的功能
函数名() { #函数名后面()是没有内容的
命令序列 #我们执行的命令内容放在{}里面
}
- 函数定义完之后并不会自动执行,需要调用才行
- 好处在于可以写一段功能代码作为函数,有需要就直接调用定义的时候哪怕出现语法错误也没关系,不调用就不会报错
- 当然我们写函数最终目的还是为了调用,为了实现某个功能块。
2.函数返回值
return表示退出函数并返回一个退出值,脚本中可以用$? 变量显示该值使用原则
- 函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
- 退出状态码必须是0~255,超出时值将为256取余
3.函数应用示例
一键部署yum库