Shell脚本之Case和循环语句
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,Shell脚本之Case和循环语句本章结构:case多分支语句循环语句for循环语句while循环语句一.case多分支语句case语句主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
impala两列数据库
云服务器的根目录
石榴微型服务器
数据库导入数据方法
家庭服务器主页
究极风暴无法打开程序数据库
北京吉敏烟气子站服务器
报考计算机网络技术专业的理由
互联网科技养鱼
网络技术应用会考提
火警声音软件开发
辽宁省财政指标数据库导入
武汉云盛互联网信息科技有限公司
sql备份数据库影响使用吗
东营供应链软件开发咨询
新吴区微型软件开发答疑解惑
网络技术是考原题吗
服务器设置启动项
添加语句后所查询的数据库
软件开发张龙
sql服务器管理器开了么
数据库重新附加
数据库分表操作命令
如何远程到服务器
大型数据库嵌入式系统
互联网高科技思维
性价比好的分布式数据库技术
辉昱通讯网络安全
外文文献用哪个数据库比较好
海光服务器启动快捷键