Shell脚本之case语句与循环语句
发表于:2024-11-29 作者:千家信息网编辑
千家信息网最后更新 2024年11月29日,case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in //变量值即$变量名模式1)命令序列1;;
千家信息网最后更新 2024年11月29日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安全错误
数据库的锁怎样保障安全
浦发银行软件开发加班情况
娃哈哈妙眠云仓软件开发
中国台湾小型软件开发服务介绍
网络安全应急预案修订记录内容
浏览器每次都要看dns服务器吗
日本网络安全知识
代理服务器的设置方法
创建数据库的3种方法有哪些
宽城区智能网络技术口碑推荐
中传黄玮 网络安全
软件开发技术服务推广
网络安全之我见作文200字
提升网络安全队伍
企业网络安全防护视频
计算机网络技术是否热门
数据库idle_time
数据库如何存储富文本格式
滴虎车联网服务器
数据库录取不同类型字段
数据库表uml图
p站关服务器
维普期刊数据库能不能在校外使用
移动分层分组网络技术
WOW数据库技术学院
机关抓实网络安全重点
新乡弘扬网络技术有限公司
桐柏手机app软件开发公司
软件开发小项目经验
服装搭配软件开发
嘉定区软件开发市场