Shell脚本之case语句与循环语句
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in //变量值即$变量名模式1)命令序列1;;
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
深圳市人人互联网科技有限公司
上海睿民互联网科技有限公司
云之行互联网科技
国智互联网科技
互联网与科技金融数据
互联网 科技公司
互联网科技革命
互联网金融 科技创新
重庆科技学院互联网
互联网科技股午盘股票涨跌
滨湖区互联网智能科技产品供应
华脉科技工业互联网产品
重庆威客帮互联网科技
互联网校园科技培训
互联网在线教育科技创业
用友工业互联网科技发展
广州富喜互联网络科技
广东鹅鹅鹅互联网科技有限公司
福州德业互联网科技
互联网金融金融科技
咖啡网
花魁咖啡
互联网金融 金融科技
佩信高科技互联网
北京三清互联网科技
南山科技园互联网公司有哪些
黑云互联网科技有限公司
众联互联网络科技
亚光科技低轨卫星互联网
优雇互联网科技有限公司