Shell脚本之case语句与循环语句
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in //变量值即$变量名模式1)命令序列1;;
千家信息网最后更新 2024年11月28日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安全错误
数据库的锁怎样保障安全
宁波java软件开发创新服务
小米平板管理服务器
互联网科技怎么做宣传
成立医院网络安全领导小组
栖霞区智能化软件开发经验丰富
数据库小于多少天
杭州软件开发定制公司哪家服务好
数据库foxtable
软件开发预算明细表
观看网络安全宣传片观后感
彩六异种服务器连接出错
达梦数据库rac
网络安全为主题视频
sql数据库开发访问控制
电子商务网络安全问题分析
网络安全宣传学习感悟
dnf公益服数据库获取
移动通信网络技术有限公司
滁州网络安全考试机构
修改生产数据库
系统数据库安全性
小米平板管理服务器
pc端软件开发
数据库foxtable
云计算or大数据库
网络安全第五空间影评
北邮数据库应用技术阶段作业
网络安全知识宣传学习手抄报
云南高配置服务器云空间
无锡多功能软件开发维修电话