Linux系统中Shell编程之case循环、for循环及While循环的实际使用
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,Shell编程之case语句与循环语句case多分支语句case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in模式 1) 命令序列 1 ;;模式 2)
千家信息网最后更新 2025年12月01日Linux系统中Shell编程之case循环、for循环及While循环的实际使用
Shell编程之case语句与循环语句
case多分支语句
case语句的结构
针对变量的不同取值,分别执行不同的命令序列
case 变量值 in模式 1) 命令序列 1 ;;模式 2) 命令序列 2 ;; *) 默认命令序列 esaccase语句的结构图
case语句应运示例
示例1
击键类型识别
(1)提示用户输入一个字符
(2)判断出该字符是字母、数字
[root@localhost ~]# vim 1.sh #!/bin/bash read -p "请您输入一个字符:" key case $key in [ a-z]|[A-Z]) echo "你输入的是字母" ;; [0-9]) echo "你输入的是数字" ;; esac[root@localhost ~]# chmod +x 1.sh[root@localhost ~]# ./1.sh
示例2
编写系统服务脚本
(1)使用start、stop、restart等参数来控制服务
(2)服务控制指令通过位置变量$1传入
[root@localhost ~]# vim myprog.sh#!/bin/bashcase "$1" instart) echo -n "正在启动sleep服务..." if sleep 7200 &then echo "OK" fi ;;stop) echo -n "正在停止sleep服务...." pkill "sleep" &> /dev/nullecho "OK" ;;status) if pgrep "sleep" &>/dev/null;then echo "sleep 服务已启动." else echo "sleep服务已经停止" fi ;;restart) $0 stop $1 start;;*) echo "用法:$0 {start|stop|status|restart}"esac[root@localhost ~]# chmod +x myprog.sh循环语句
for语句的结构
读取不同的变量值,用来逐个执行同一组命令for 变量名 in 取值列表do 命令序列 donefor语句的结构图
for 语句应运示例
示例1
批量添加用户
(1)用户名存放在users.txt文件中,每行一个
(2)初始密码均设为123456
(3)验证脚本
[root@localhost opt]# vim users.txt lisi wangwu zhangsan zhaoliu [root@localhost opt]# vim 3.sh #!/bin/bash TMP=$(cat /opt/users.txt) for USER in $TMP do useradd $USER echo "123456" | passwd --stdin $USER &> /dev/null done [root@localhost opt]# chmod +x 3.sh[root@localhost opt]# ./3.sh
示例2
根据IP地址检查主机状态
(1)IP地址存放在ipadds.txt为文件中,每行一个
(2)使用ping命令检测各主机的连通性
[root@localhost ~]# vim ipadds.txt192.168.217.130192.168.178.2192.168.217.129192.168.312.23[root@localhost ~]# vim ping.sh#1/bin/bashTMP=$(cat /root/ipadds.txt)for IP in $TMPdo ping -c 3 -i 0.2 -M 3 $IP &> /dev/null if [ $? -eq 0 ] then echo "$IP is up" else echo "$IP id down" fidone[root@localhost ~]# chmod +x ping.sh[root@localhost ~]# ./ping.shwhile 语句的结构
重复测试某个条件,只要条件成立则反复执行while 条件测试操作do 命令序列 donewhile 语句的结构图
while语句应运示例
示例1
批量添加用户
(1)用户名称以stu开头,按照数字顺序进行编号
(2)一共添加20个用户,即stu1、stu2、.........、stu20
(3)初始密码均设为123456
[root@localhost ~]# vim stu.sh #!/bin/bashi=1DP="stu"while [ $i -le 20 ] do useradd $DP$i echo "123456" | passwd --stdin $DP$i &>/dev/null let i++done[root@localhost ~]# chmod +x stu.sh[root@localhost ~]# ./stu.sh
示例2
猜商品价格
(1)通过变量RANDOM获取随机数
(2)提示用户猜测并记录次数,猜中后退出循环
[root@localhost ~]# vim san.sh#!/bin/bashS=0PR=$(expr $RANDOM % 1000)echo "商品实际价格为0~999,猜猜是多少?"while truedo read -p "请输入你猜测的价格数目:" RIN let S++ if [ $RIN -eq $PR ] then echo "恭喜你才中了!" echo "你猜测的次数为$S" exit 0 elif [ $RIN -lt $PR ] then echo "你猜测的值太小了" else echo "你猜测的值太大了" fidone[root@localhost ~]# chmod +x san.sh[root@localhost ~]# ./san.sh
语句
示例
命令
用户
服务
序列
结构
猜测
输入
变量
循环
不同
价格
字符
数字
条件
结构图
主机
商品
地址
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库乘以
软件开发需要多少个经理
数据库实现访问控制的技术
丰台区管理软件开发介绍
网络安全威胁 内部人员
switch下载快的服务器
深圳服务器托管排名
微信软件开发人是谁张小龙
工商管理要学数据库嘛
互联网高科技年会游戏
网络安全法的基本要求
关系数据库的三类完整性含义
网络安全主动与被动
意识形态与网络安全责任制
nosql数据库设计工具
poi高德数据库
分享影视软件开发
人工智能网络技术的基础知识
cac国家网络安全
软件开发服务审计标准
网络技术本科学校
火鸟数据库管理软件
徐州百度霸屏百度推广软件开发
国家网络安全青少年活动形式
公司网络安全吗
网页服务器被恶意攻击怎么办
嘉善专业的模具软件开发教程
京东商城的网络技术
娄底软件开发培训去哪好
一个数据库至少由