Shell脚本之case语句与循环语句
发表于:2024-10-06 作者:千家信息网编辑
千家信息网最后更新 2024年10月06日,case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in //变量值即$变量名模式1)命令序列1;;
千家信息网最后更新 2024年10月06日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安全错误
数据库的锁怎样保障安全
安徽数据网络技术开发费用是多少
龙头企业 网络安全
软件开发编码过程能力
轮回服务器和怀旧服的区别
如何快速的学会网络技术
数据库格式化年月日
数据库工程师工作职责
荒野行动连接服务器需要多少分钟
作业安全分析数据库
广州商鼎网络技术有限公司
数据库统计一周数据脚本
中国网络安全的最新进展
2018网络安全宣传片下载
windows服务器收费吗
a10网络技术支持
2020大学生网络安全大赛
崩坏三各服务器开服时间
弘觅上海网络技术有限公司
活动中心网络安全处置预案
百度地图城市数据库
镇江软件开发怎么样
把txt文件导入数据库
交通银行软件开发工程师笔试
炼油厂网络安全方案
有同义词扩展功能的数据库
maven在哪儿看数据库
大兴区通用网络技术售后保障
临汾信息中心服务器维保
化妆品数据库营销
互联网网络技术推广哪家好