Shell脚本之Case和循环语句
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,Shell脚本之Case和循环语句本章结构:case多分支语句循环语句for循环语句while循环语句一.case多分支语句case语句主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值
千家信息网最后更新 2024年10月20日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安全错误
数据库的锁怎样保障安全
郑州一然软件开发有限公司
wind 数据库
软件开发项目监理会议纪要
舒兰软件开发
计算机网络技术是哪类
nginx图片服务器linux
服务器esxi7.0安装
sybase 到处数据库
计算机网络技术与运用学的什么
南通尚客网络技术有限公司
线上网络安全主题班会
四川正规软件开发服务费
如何建造家用游戏服务器
建立数据库连接时出错是什么原因
北京100mc服务器
重庆秀山海鲜配送软件开发
公办单招计算机网络技术专业学校
在线 数据库
查看达梦数据库的状态
软件开发数据模型
如何测试数据库用户的权限
计算机编程数据库排名
武汉大学黄娜娜网络安全
数据库系统概论简要笔记
四川正规软件开发服务费
杭州途特网络技术有限公司
什么是数据库双录入法
软件开发项目阶段目标
个人信息保护网络安全法实施
查看达梦数据库的状态