Shell脚本之case语句与循环语句
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in //变量值即$变量名模式1)命令序列1;;
千家信息网最后更新 2025年12月01日Shell脚本之case语句与循环语句
case语句的结构
针对变量的不同取值,分别执行不同的命令序列
case 变量值 in //变量值即$变量名模式1)命令序列1;; //双分号结束语句模式2)命令序列2;; //双分号结束语句......*) 默认命令序列esaccase语句执行流程
case语句应用演示
[root@localhost opt]# vim demo01.sh#!/bin/bashread -p "请输入成绩 (0-100) : " keycase $key 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 opt]# source demo01.sh请输入成绩 (0-100) : 88你的成绩优秀[root@localhost opt]# source demo01.sh请输入成绩 (0-100) : 76你的成绩良好[root@localhost opt]# source demo01.sh请输入成绩 (0-100) : 66你的成绩合格[root@localhost opt]# source demo01.sh请输入成绩 (0-100) : 59你的成绩不合格[root@localhost opt]# source demo01.sh请输入成绩 (0-100) : 120你输入的成绩有误,请重新输入for语句的结构
读取不同的变量值,用来逐个执行同一组命令
for 变量名 in 取值do命令序列donefor语句的执行流程

for语句应用演示
批量添加用户
1.用户名存放在users.txt文件中,每行一个
2.初始密码均设为123456
3.验证脚本
[root@localhost opt]# vim users.txtSimitaBoke[root@localhost opt]# vim users.sh#!/bin/bashTMP=$(cat /root/users.txt)for USER in $TMPdo useradd $USER echo "123456" | passwd --stdin $USER &> /dev/nulldone[root@localhost opt]# source users.sh[root@localhost opt]# tail -2 /etc/passwdSimita:x:1030:1030::/home/Simita:/bin/bashBoke:x:1031:1031::/home/Boke:/bin/bashwhile语句的结构
重复测试某个条件,只要条件成立则反复执行
while 条件测试操作do命令序列donewhile语句的执行流程

while语句应用演示
猜商品价格
1.通过变量RANDOM获得随机数
2.提示用户猜测并记录次数,猜中后退出循环
[root@localhost ~]# vim demo08.sh#!/bin/bashPRICE=$(expr $RANDOM % 1000)TIMES=0 echo "商品价格范围为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 ~]# source demo08.sh商品价格范围为0-999,猜猜看是多少?请输入您猜的价格数目:500太高了!请输入您猜的价格数目:250太高了!请输入您猜的价格数目:200太高了!请输入您猜的价格数目:150太低了!请输入您猜的价格数目:180太高了!请输入您猜的价格数目:160太低了!请输入您猜的价格数目:170太高了!请输入您猜的价格数目:165太高了!请输入您猜的价格数目:162你猜对了,实际价格是162你总共猜了9 次until语句结构
重复测试某个条件,只要条件不成立则反复执行
until 条件测试操作do命令序列doneuntil语句应用演示
为指定用户发送在线消息
1.若用户不在线(为登录系统),则每10分钟试一次,直至用户登录系统后再发送消息
2.用户名与消息通过位置参数传递给脚本
[root@localhost ~]# vim demo01.sh #!/bin/bashusername=$1#判断信息格式if [ $# -lt 1 ];then echo "Usage:`basename $0` []" exit 1fi#判断用户是否存在if grep "^$username:" /etc/passwd > /dev/null ;then :else echo "用户不存在"fi#用户是否在线,若不在线每五秒联系一次until who|grep "$username" > /dev/null;do echo "用户不在线" sleep 5donemes=$*echo $mes | write $username[root@localhost ~]# chmod +x demo01.sh[root@localhost ~]# ./demo01.sh czt指定用户登录后,在终端界面接受到信息[czt@localhost ~]$ Message from root@localhost.localdomain on pts/0 at 15:09 ...cztEOF
输入
成绩
价格
语句
用户
数目
命令
序列
条件
在线
变量
结构
应用
测试
演示
不同
商品
商品价格
流程
消息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
衡阳软件开发价格
第一批网络安全公司
计算机网络技术与现代文明
网络安全中入侵
网络安全专业实训设备
沈阳通信技术系统软件开发
校园网络安全保障工作的通知
蓝点网络技术有限公司
集团网络安全方案
第三方数据库备份软件好不好
计算机无线网络安全 论文
国家儿童网络安全实施日期
派出所网络安全相关工作
360天擎服务器数据库
php本地数据库地址
监控技术网络安全
软件开发测试与验收
总经办关于网络安全的描述
软件开发劳务 税率
天下电子书读取服务器失败
肇庆教育软件开发方案
南宁软件开发工程师平均工资
it软件开发年终总结报告
云服务器运行uniapp
诛仙手游星期几服务器维护
圣境传说 数据库
深漂小伙自学网络技术
wind数据库怎么查薪酬吗
vb软件开发菜单设计
简幻欢服务器加插件