Linux系统中Shell编程之case循环、for循环及While循环的实际使用
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Shell编程之case语句与循环语句case多分支语句case语句的结构针对变量的不同取值,分别执行不同的命令序列case 变量值 in模式 1) 命令序列 1 ;;模式 2)
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司
上海喔噻互联网科技有限公司
百单网互联网科技有限公司怎么样
金融科技还是互联网
贷财互联网科技
云电互联网科技
掌上梦互联网科技
镁科技互联网资讯平台
太原新华互联网科技学校怎么样
承德科技产业互联网发展
广州恒生互联网科技有限
港股科技和互联网
未来五年的互联网科技
洛阳昕诺飞互联网科技有限公司
银川新华互联网科技学校联系电话
中国互联网公司排名锤子科技
佛山市拉法互联网科技有限公司
上海互联网科技公司ppt
互联网科技机房
互联网科技大会大佬
云南咖啡
博彦科技互联网金融
高科技互联网
融势互联网科技
互联网科技素材视频竖屏
阿里互联网科技公司
岳阳华臻互联网科技有限公司
世界互联网领先科技成果获奖
科技赋能视角下互联网保险发展
上海创道互联网络科技有限公司