千家信息网

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;;                        //双分号结束语句......*)   默认命令序列esac

case语句执行流程

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命令序列done

for语句的执行流程

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/bash

while语句的结构

重复测试某个条件,只要条件成立则反复执行

while   条件测试操作do命令序列done

while语句的执行流程

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命令序列done

until语句应用演示

为指定用户发送在线消息
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安全错误 数据库的锁怎样保障安全 上海卓越科技互联网 互联网科技工作委员会副主任毛军 广州百单互联网科技有限公司 腾讯科技 互联网女皇 沃里互联网科技 融贸通互联网科技 互联网科技类展会 顺网科技2021年互联网排名 科技互联网的估值 互联网科技有哪些公司 内蒙古九一互联网科技 洛阳共同富裕互联网科技有限公司 华夏恒生科技与互联网科技 互联网科技大赛获奖感言 滨湖区互联网智能科技产品有哪些 合肥互联网科技公司公章图片 电子商务与互联网科技的关系 黑云互联网科技有限公司 抖集互联网科技技术咨询 网互联网络科技 深圳九邦互联网科技有限公司 新华互联网科技学校 互联网巨头科技公司 互联网科技金融公司 天津摩尔互联网科技 中正互联网科技招聘 晓花互联网科技有限公司网址 为客找房互联网科技公司怎么样 张家口科技产业互联网平台 互联网科技快速发展优美句子
0