Shell编程——case语句与循环语句(3)
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,case多分支语句case语句的结构针对变量的不同取值,分别执行不同的命令序列实例1 击键类型识别 提示用户输入一个字符 判断出该字符是字母,数字或者其他字符#!/bin/bashread -
千家信息网最后更新 2025年12月01日Shell编程——case语句与循环语句(3)
case多分支语句
case语句的结构针对变量的不同取值,分别执行不同的命令序列
实例1
击键类型识别 提示用户输入一个字符 判断出该字符是字母,数字或者其他字符#!/bin/bashread -p "请输入一个字符:" keycase $key in[a-z] | [A-Z]) echo "你输入的是字母" ;;[0-9]) echo "你输入的是数字" ;;*) echo "你输入的是特殊字符"esac
实例2
输入成绩,查看成绩等级
#!/bin/bashread -p "请输入你的成绩:" numcase $num in[8-9][0-9]|100) echo "优秀" ;;7[0-9]) echo "良好" ;;6[0-9]) echo "合格" ;;[0-9]|[1-5][0-9]) echo "不合格" ;;*) echo "您输入有误"esacfor语句的结构
读取不同的变量值,用来逐个执行同一组命令
实例1
批量添加用户 将用户名存放在name.txt文件中,每行一个 初始密码均设为123456 验证脚本#!/bin/bashTMP=$(cat /root/name.txt)for USER in $TMPdo echo "用户是$USER" useradd $USER echo "123456" | passwd --stdin $USER > /dev/nulldone实例2
根据IP地质检查主机状态 IP地质存放在demo04.txt文件中,每行一个 使用ping命令检测各主机的连通性#!/bin/bashIP=$(cat /root/demo04.txt)for ip in $IPdo ping -c 1 -s 1 -w 3 $ip > /dev/null if [ $? -eq 0 ] then echo "$ip主机存在" else echo "$ip主机不存在" fidonewhile语句的结构
重复测试某个条件,只要条件成立则反复执行
实例1
批量添加用户 用户名称以stu开头,按数字顺序进行编号 一共添加5个用户,即stu1,stu2,stu3... 初始密码均设为123456#!/bin/bashnum=1while [ $num -le 5 ]douseradd stu$num echo "123456" | passwd --stdin stu$num &> /dev/null let num++done实例2
猜商品价格脚本 通过变量RANDOM获得随机数 提示用户猜测并记录次数,猜中后退出循环#!/bin/bashrandom=$(expr $RANDOM % 100)tim=0while truedo read -p "请输入商品的价格:" jia let tim++ if [ $jia -eq $random ] then echo "恭喜您猜对了" echo "您一共猜了$tim" exit 0 elif [ $jia -lt $random ] then echo "您猜的数小了" else echo "您猜的数大了" fidone综合实例
进入五家商店分别购买商品,最后查看消费总额
#!/bin/bashi=1sum=0while [ $i -le 5 ]do echo "进入第$i家商店" read -p "是否进入看看(yes/no)" doing while [ $doing = "yes" ] do echo "1:衣服¥200" echo "2:鞋子¥100" echo "3:手套¥75" echo "4:裤子¥150" read -p "请选择需要购买的商品序列:" num case $num in 1) echo "衣服购买成功" expr $[sum+=200] &> /dev/null ;; 2) echo "鞋子购买成功" expr $[sum+=100] &> /dev/null ;; 3) echo "手套购买成功" expr $[sum+=75] &> /dev/null ;; *) echo "裤子购买成功" expr $[sum+=150 &> /dev/null esac read -p "是否继续进行购买(yes/no)" doing done let i++ if [ $doing = "no" ] then continue fidone echo "购物总价:$sum"until语句的结构
重复测试某个条件,只要条件不成立则反复执行
实例1
计算1-50的和值 通过循环累计的方式计算1-50的和值#!/bin/bashsum=0i=0until [ $i -eq 51 ]do let sum+=$i let i++doneecho "总数之和为:$sum"实例2
为指定用户发送在线消息 若用户不在线(未登陆系统),则每5s试一次,直至用户登录后在发送消息 用户与消息通过为止参数传递给脚本#!/bin/bashif [ $# -lt 0 ]then echo "Usage:$0 " exit 1figrep "$1" /etc/passwd &> /dev/nullif [ $? -eq 0 ];then :else echo "用户不存在"fiuntil who|grep "$1" > /dev/nulldo echo "用户不在线" sleep 5doneecho $2 | write $1 谢谢阅读!!!
用户
实例
输入
语句
字符
成功
主机
商品
条件
结构
不同
命令
成绩
数字
消息
脚本
在线
循环
价格
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库刀片服务器
腾达a31 改打印服务器
济南软件开发公司张松云
定制化国产服务器供应费用
数据库的文件装
奶块怨灵武士服务器
软件开发技术相关书籍
闵行区品质软件开发哪家好
网络安全 东亚
域服务器管理多少台
小白评测的数据库靠谱吗
非归档模式的数据库有何优势
四川 网络技术公司
健康码登录不上显示服务器繁忙
网络安全法59条解释
互联网科技公司一般怎么盈利
国外学术数据库怎么搜期刊
网络技术专业有哪些岗位
广灵网络安全质量服务
网络安全监控岗年终总结
软件开发 免征增值税
马桶c玩的起床战争服务器
涉密信息网络安全工作汇报
bomb服务器
从事软件开发的看法
什么是服务器校验
惠山区项目软件开发销售电话
postgre数据库备份
如何注意暑期网络安全
嘉定区自动化软件开发产品介绍