Shell脚本之Case和循环语句
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,Shell脚本之Case和循环语句本章结构:case多分支语句循环语句for循环语句while循环语句一.case多分支语句case语句主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值
千家信息网最后更新 2025年12月01日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/bash2.第二个实战
一位同学查看自己的分数
#!/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/bash2.第二个实战项目
猜价格,猜商品的价格
要求:生成一个随机的价格数目(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安全错误
数据库的锁怎样保障安全
互联网时代科技中介
数据库sqlite索引
如何修改服务器ip
青海租用gpu服务器收费
国际网络安全事件案例
网络安全专业擅长的专长
有名软件开发工资一般多少
实惠的进销存软件开发流程
中药化学数据库
最新最好的网络安全
洛阳中等计算机网络技术
电子产品软件开发
排行榜的数据库设计
数据库2019企业版的密钥
数据库中一对一是建几张表
电脑弹出服务器忙是怎么回事
软件无法更新数据库
温岭奔跑网络技术
网络安全同等学力申硕
幼儿园小班沉迷网络安全教案
网络安全相关文章发表
存储服务器数据安全分析
数据库快
北京盛世网络安全
商丘欣诺互联网科技
网络安全帽什么意思
影之刃角色查询服务器
博诺特网络技术
软件开发员工表扬
如何判断数据源数据库类型