Shell脚本之Case和循环语句
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,Shell脚本之Case和循环语句本章结构:case多分支语句循环语句for循环语句while循环语句一.case多分支语句case语句主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值
千家信息网最后更新 2024年11月28日Shell脚本之Case和循环语句
Shell脚本之Case和循环语句
本章结构:
case多分支语句
循环语句
for循环语句
while循环语句
一.case多分支语句
case语句主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。这种情况与多分支的If语句非常相似,只不过if与据需要判断多个不同的条件按,而case只是判断一个变量的不同取值。
1.项目实战
检查用户输入的字符类型
提示用户从键盘输入一个字符,通过case语句判断该字符是否为字母,数字或者其他控制字符,并给出相应的提示信息
#!/bin/bashread -p "请输入一个字符" keycase $key in[a-z]|[A-Z]) echo "你输入的是字母";;[0-9]) echo "你输入的是数字";;*) echo "你输入的是特殊符号"esac~
[root@localhost ~]# ./1.sh请输入一个字符a你输入的是字母[root@localhost ~]# ./1.sh请输入一个字符S你输入的是字母[root@localhost ~]# ./1.sh请输入一个字符3你输入的是数字[root@localhost ~]# ./1.sh请输入一个字符&你输入的是特殊符号
二.for循环语句
使用for循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在这里,"取值列表"称为for语句的执行条件,其中多个属性相同的对象,需要预先指定。
1.项目实战
根据姓名批量添加用户账号,并设置初始密码"123456"
1.1先做一个姓名的列表文件[root@localhost ~]# vim /root/users.txtchenwenzhangsanwangwulisi~
1.2批量添加用户和设置密码[root@localhost ~]# vim uaddfor.sh#!/bin/bashULIST=$(cat /root/users.txt)for UNAME in $ULISTdo useradd $UNAME echo "123456" | passwd --stdin $UNAME &>/dev/nulldone~ ~
1.3测试并执行结果[root@localhost ~]# chmod +x uaddfor.sh[root@localhost ~]# ./uaddfor.sh[root@localhost ~]# tail -4 /etc/passwdchenwen:x:1021:1021::/home/chenwen:/bin/bashzhangsan:x:1022:1022::/home/zhangsan:/bin/bashwangwu:x:1023:1023::/home/wangwu:/bin/bashlisi:x:1024:1024::/home/lisi:/bin/bash
2.第二个实战
一位同学查看自己的分数
#!/bin/bashread -p "请输入你的分数(0-100)" scourecase $scoure in [8-9][0-9]|100) echo "成绩优秀";; 7[0-9]) echo "成绩良好";; 6[0-9]) echo "成绩合格";; [0-9]|[1-5][0-9]) echo "成绩不合格";;*) echo "输入有误,请重新输入"esac~
[root@localhost ~]# ./e.sh请输入你的分数(0-100)90成绩优秀[root@localhost ~]# ./e.sh请输入你的分数(0-100)75成绩良好[root@localhost ~]# ./e.sh请输入你的分数(0-100)51成绩不合格[root@localhost ~]# ./e.sh请输入你的分数(0-100)123输入有误,请重新输入
三.while 循环语句
使用while循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。在脚本应用中,
应该避免死循环的情况,否则后边的命令操作将无法执行。因此,循环体内的命令序列中应包括修改测试条件的语句,以便再适当的时候事测试条件不再成立,从而结束循环。
1.实战项目
批量添加用户20个用户账号,名称依次为stt1,stu2 ...stt20,并设置密码123456
[root@localhost ~]# vim 3.sh
#/bin/bashPREFLX="stt"i=1while [ $i -le 20 ]do useradd ${PREFLX}$i echo "123456" | passwd --stdin ${PREFLX}$i &> /dev/nulllet i++done[root@localhost ~]# chmod +x 3.sh[root@localhost ~]# ./3.sh
[root@localhost ~]# tail -3 /etc/passwdstt18:x:1042:1042::/home/stt18:/bin/bashstt19:x:1043:1043::/home/stt19:/bin/bashstt20:x:1044:1044::/home/stt20:/bin/bash
2.第二个实战项目
猜价格,猜商品的价格
要求:生成一个随机的价格数目(0--999)作为实际价格,判断用户猜测的价格太高或太低,一直让用户猜中实际价格为止,输出用户猜测的次数和实际价格
[root@localhost ~]# vim 4.sh
#!/bin/bashPRICE=$(expr $RANDOM % 1000)TIMES=0echo "商品的实际价格范围为0~999,猜猜看是多少?"while truedo read -p "请输入你猜测的价格数目:" INT let TIMES++if [ $INT -eq $PRICE ];then echo "恭喜你答对了,实际价格是$PRICE" echo "你总共猜测了$TIMES次"exit 0elif [ $INT -gt $PRICE ];then echo "太高了!"else echo "太低了!"fidone~
[root@localhost ~]# chmod +x 4.sh[root@localhost ~]# ./4.sh商品的实际价格范围为0~999,猜猜看是多少?请输入你猜测的价格数目:345太低了!请输入你猜测的价格数目:456太低了!请输入你猜测的价格数目:678太高了!请输入你猜测的价格数目:378 太低了!请输入你猜测的价格数目:400太低了!请输入你猜测的价格数目:450太低了!请输入你猜测的价格数目:455太低了!请输入你猜测的价格数目:456太低了!请输入你猜测的价格数目:567太低了!请输入你猜测的价格数目:589太高了!请输入你猜测的价格数目:580太低了!请输入你猜测的价格数目:581恭喜你答对了,实际价格是581你总共猜测了12次
以上就是我们所有的内容了
输入
价格
猜测
语句
数目
循环
字符
用户
实际
成绩
分数
条件
命令
实战
不同
字母
序列
项目
分支
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北网络安全知识
深圳市云易通网络技术
浙江crm软件开发外包
sql数据库开始不了
中心数据集装箱和IU服务器
软件开发工程师的一天
渗透测试数据库连接工具
组装服务器电脑吃鸡
手机号数据库字段类型
中国三峡网络安全待遇
网络安全股票龙头有哪些
三级网络技术 pdf
中兴嵌入式软件开发做什么的
网络安全客户保障
数据库重装仓库能用吗
苹果6参考数据库
提升女性的网络安全
数据库如何默认政治面貌
如梭加速器怎么创建服务器
软件开发公司要交哪些税种
义乌软件开发专业
嘉定区口碑好的软件开发哪家好
数控机床软件开发招聘
php 高并发数据库连接
提升服务器安全管理
电脑群控软件开发
封面制作的手机软件开发
软件开发属于啥科
网页临时数据库怎么删除
小米服务器怎么打开