当前位置: 首页 > news >正文

织梦大气绿色大气农业能源化工机械产品企业网站源码模版做动态logo网站

织梦大气绿色大气农业能源化工机械产品企业网站源码模版,做动态logo网站,北京市城市建设档案馆网站,汕头澄海招聘网一、前言在 Linux 系统管理和自动化运维中,Shell 脚本 是最常用的工具之一。而要编写高效、灵活的 Shell 脚本,掌握 流程控制语句 是必不可少的基础技能。本文将带你全面学习 Shell 脚本中常用的流程控制语句,包括:✅ if 条件判断…

一、前言

在 Linux 系统管理和自动化运维中,Shell 脚本 是最常用的工具之一。而要编写高效、灵活的 Shell 脚本,掌握 流程控制语句 是必不可少的基础技能。

本文将带你全面学习 Shell 脚本中常用的流程控制语句,包括:

if 条件判断(单分支、双分支、多分支)
case 多分支选择
for 循环(遍历列表、C 风格)
whileuntil 循环
breakcontinue 控制循环
✅ 实际开发中的典型应用案例

所有代码均使用 bash 编写,兼容大多数 Linux/Unix 系统。

二、Shell 脚本基础回顾

在开始之前,确保你的脚本以正确的解释器开头:

#!/bin/bash

保存为 .sh 文件后,赋予执行权限:

chmod +x script.sh
./script.sh

三、if 条件判断语句

if 语句是最基本的条件控制结构,用于根据条件执行不同的代码块。

✅ 1. 单分支 if 语句

if [ 条件 ]; then命令
fi
示例:判断文件是否存在
#!/bin/bash
if [ -f "/etc/passwd" ]; thenecho "文件存在"
fi

✅ 2. 双分支 if-else 语句

if [ 条件 ]; then命令1
else命令2
fi
示例:判断用户输入是否为正数
#!/bin/bash
read -p "请输入一个数字:" numif [ $num -gt 0 ]; thenecho "这是一个正数"
elseecho "这不是一个正数"
fi

✅ 3. 多分支 if-elif-else 语句

if [ 条件1 ]; then命令1
elif [ 条件2 ]; then命令2
else命令3
fi
示例:判断成绩等级
#!/bin/bash
read -p "请输入成绩:" scoreif [ $score -ge 90 ]; thenecho "等级:A"
elif [ $score -ge 80 ]; thenecho "等级:B"
elif [ $score -ge 70 ]; thenecho "等级:C"
elseecho "等级:D"
fi

四、case 多分支选择语句

当条件较多时,caseif-elif 更清晰、高效。

✅ 语法结构

case 变量 in模式1)命令1;;模式2)命令2;;*)默认命令;;
esac

⚠️ * 表示默认匹配,;; 表示结束当前分支。

示例:菜单选择
#!/bin/bash
echo "请选择操作:"
echo "1) 查看日期"
echo "2) 查看磁盘使用"
echo "3) 查看内存使用"
read -p "输入选项:" choicecase $choice in1)date;;2)df -h;;3)free -h;;*)echo "无效选项";;
esac

五、for 循环语句

for 循环用于重复执行一组命令。

✅ 1. 遍历列表(字符串或数组)

for 变量 in 列表; do命令
done
示例:遍历文件名
#!/bin/bash
for file in *.txt; doecho "处理文件: $file"
done
示例:遍历数组
names=("Alice" "Bob" "Charlie")
for name in "${names[@]}"; doecho "Hello, $name"
done

✅ 2. C 风格 for 循环

for (( 初始化; 条件; 更新 )); do命令
done
示例:打印 1 到 5
#!/bin/bash
for (( i=1; i<=5; i++ )); doecho "第 $i 次循环"
done

六、while 和 until 循环

✅ 1. while 循环(当条件为真时执行)

while [ 条件 ]; do命令
done
示例:读取文件每行
#!/bin/bash
while read line; doecho "$line"
done < /etc/passwd
示例:计数循环
i=1
while [ $i -le 3 ]; doecho "循环 $i"((i++))
done

✅ 2. until 循环(当条件为假时执行)

until [ 条件 ]; do命令
done
示例:直到用户输入 "quit"
#!/bin/bash
input=""
until [ "$input" = "quit" ]; doread -p "输入命令(quit退出):" inputecho "你输入了:$input"
done

七、break 和 continue 语句

✅ break:跳出当前循环

for i in {1..5}; doif [ $i -eq 3 ]; thenbreakfiecho $i
done
# 输出:1 2

✅ continue:跳过本次循环,进入下一次

for i in {1..5}; doif [ $i -eq 3 ]; thencontinuefiecho $i
done
# 输出:1 2 4 5

八、实际开发中的典型应用场景

✅ 场景1:批量处理日志文件

#!/bin/bash
for log in /var/log/*.log; doif [ -s "$log" ]; thengzip "$log"echo "已压缩:$log"elseecho "空文件跳过:$log"fi
done

✅ 场景2:服务状态监控

#!/bin/bash
while true; doif ! systemctl is-active --quiet nginx; thenecho "$(date): Nginx 服务已停止,正在重启..."systemctl restart nginxfisleep 10
done

九、流程控制语句对比表

语句用途适用场景
if条件判断简单或复杂条件分支
case多分支选择多个固定值判断(如菜单)
for遍历循环已知次数或列表
while条件循环不确定次数,依赖条件
until反向条件循环直到条件满足为止
break跳出循环异常退出或满足条件终止
continue跳过本次循环过滤某些情况

十、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!

http://www.dtcms.com/a/536368.html

相关文章:

  • 在建项目人员查询网站个人网站可以做论坛吗
  • 第53题 最大子数组和
  • 网站源码超市中国建设银行大沥网站
  • leetcode 242. 有效的字母异位词 python
  • 免费网站建设模板好看的商城网站
  • 0382. 链表随机节点
  • Vue3 路由完全指南:从基础配置到权限控制
  • 宁波seo推广咨询长沙 建站优化
  • 邯郸做网站熊掌号什么自己做网站
  • Spring Boot3零基础教程,监听 Kafka 消息,笔记78
  • 【Swift】LeetCode 41. 缺失的第一个正数
  • cuda编程笔记(34)-- 内存访问控制与缓存提示
  • webserver类续
  • 条款22:使用Pimpl惯用法时,将特种成员函数的定义放到实现文件中
  • 基于python大数据的省级城市政企客户业务分析系统
  • 合肥微网站制作初中做语文综合题的网站
  • dedecms做论坛网站广州网页设计师学校
  • Blender + MCP 全流程详细图文教程
  • 自定义classload实现热加载案例
  • 上海网站建设seo站霸网络网站建设推销拜访客户怎么开头
  • Spring Bean的生命周期 第二次思考
  • HttpServletResponse下载文件
  • vue3的路由详解
  • Spring Boot 生产就绪特性浅析(一)
  • 如何做彩票网站信息手机上打开html的软件
  • 【图像处理基石】图像对比度增强入门:从概念到实战(Python+OpenCV)
  • 网站建设公司六安全国连锁装修公司加盟
  • 直播互动小程序端Web运营端接入指南
  • Java—抽象类
  • 坛墨网站建设wordpress 邀请