【跟韩工学Ubuntu第12课】Ubuntu Server 生产级 Shell 编程:条件判断、循环、函数与数组-002篇

张开发
2026/4/4 10:52:55 15 分钟阅读
【跟韩工学Ubuntu第12课】Ubuntu Server 生产级 Shell 编程:条件判断、循环、函数与数组-002篇
文章目录Ubuntu Server 生产级系统管理 第12章 条件判断、循环、函数与数组12.1 实战1:条件判断(if-else、case语句,案例驱动教学)12.1.1 if 条件判断基础语法详解12.1.1.1 单分支 if 语句12.1.1.2 双分支 if-else 语句12.1.1.3 多分支 if-elif-else 语句12.1.2 条件判断常用运算符全解析12.1.2.1 文件状态判断(Ubuntu 运维最常用)12.1.2.2 数值比较运算符12.1.2.3 字符串比较运算符12.1.3 case 条件语句详解12.1.3.1 case 基础语法12.1.3.2 基础实例7:简易系统操作菜单12.1.3.3 生产基础实例8:SSH 服务控制脚本12.2 实战2:循环结构(for、while、until循环,批量操作场景)12.2.1 for 循环详解12.2.1.1 列表循环语法12.2.1.2 数值循环语法12.2.1.3 遍历目录文件12.2.2 while 循环详解12.2.2.1 while 基础语法12.2.3 until 循环详解12.2.3.1 until 基础语法12.2.4 循环控制语句:break 和 continue12.3 实战3:函数编写与调用(代码复用,简化脚本)12.3.1 函数定义与调用基础语法12.3.1.1 无参函数定义12.3.1.2 带参数函数12.3.2 函数返回值12.3.3 生产基础实例23:封装日志打印函数12.4 实战4:数组使用(定义、赋值、遍历,处理批量数据)12.4.1 数组定义方式12.4.1.1 直接定义数组12.4.1.2 下标赋值定义12.4.2 数组常用操作12.4.3 数组遍历12.4.4 生产基础实例27:批量检查服务运行状态12.5 课后习题+实操任务(编写带循环和函数的简单脚本)12.5.1 基础习题12.5.2 基础实操任务任务1:用户批量管理脚本任务2:系统基础巡检脚本任务3:文件批量处理脚本Ubuntu Server 生产级系统管理 第12章 条件判断、循环、函数与数组本章聚焦Ubuntu Server 环境下 Bash 脚本核心语法,以零基础、逐行拆解、海量基础实例为核心,从语法原理到逐行执行解析,覆盖生产环境常用自动化场景,所有案例均适配 Ubuntu Server 20.04/22.04 版本,可直接复制运行,夯实 Shell 编程基础,为后续服务器批量运维、服务监控、自动化部署打下根基。12.1 实战1:条件判断(if-else、case语句,案例驱动教学)条件判断是 Shell 脚本的逻辑核心,作用是根据不同的执行结果、文件状态、数值大小、用户输入,选择不同的执行逻辑,是生产脚本中最基础也最常用的语法。12.1.1 if 条件判断基础语法详解Bash 中if语句有单分支、双分支、多分支三种形态,语法格式严格,[ ]内部两侧必须保留空格,这是新手最易出错的点。12.1.1.1 单分支 if 语句仅当条件成立时执行代码,条件不成立则跳过。# 语法格式if[判断条件];then条件成立时执行的命令1 条件成立时执行的命令2fi基础实例1:判断目录是否存在,不存在则创建#!/bin/bash# 脚本名称:dir_check.sh# 定义需要检查的目录路径DIR="/opt/test_dir"# 判断目录是否存在if[!-d"$DIR"];thenecho"目录$DIR不存在,开始创建目录"# 创建目录,-p 支持多级目录创建mkdir-p"$DIR"echo"目录$DIR创建成功"fi执行说明:! -d表示不是目录,条件成立则创建目录,适配 Ubuntu 服务器初始化目录场景。12.1.1.2 双分支 if-else 语句条件成立执行一段代码,不成立执行另一段代码。# 语法格式if[判断条件];then条件成立执行语句else条件不成立执行语句fi基础实例2:判断文件是否存在并输出结果#!/bin/bash# 脚本名称:file_exist.shFILE="/home/ubuntu/demo.txt"if[-e"$FILE"];thenecho"文件$FILE已存在,无需重复创建"elseecho"文件$FILE不存在,正在创建"touch"$FILE"echo"文件创建完成"fi执行说明:-e是通用判断,可检测文件或目录是否存在。12.1.1.3 多分支 if-elif-else 语句适用于多个条件场景,依次判断,匹配则执行对应逻辑。# 语法格式if[条件1];then执行语句1elif[条件2];then执行语句2elif[条件3];then执行语句3else所有条件不匹配执行语句fi基础实例3:判断用户输入数字的大小范围#!/bin/bash# 脚本名称:num_judge.shecho"请输入一个数字:"readNUMif["$NUM"-gt90];thenecho"输入数字大于90"elif["$NUM"-gt60];thenecho"输入数字大于60且小于等于90"elif["$NUM"-gt0];thenecho"输入数字大于0且小于等于60"elseecho"输入数字小于等于0"fi12.1.2 条件判断常用运算符全解析12.1.2.1 文件状态判断(Ubuntu 运维最常用)运算符含义基础实例-f判断是否为普通文件[ -f "/etc/passwd" ]-d判断是否为目录[ -d "/etc/nginx" ]-e判断文件/目录是否存在[ -e "/var/log" ]-r判断文件是否可读[ -r "/etc/hosts" ]-w判断文件是否可写[ -w "/tmp/test.log" ]-x判断文件是否可执行[ -x "/usr/bin/ls" ]基础实例4:判断文件是否可读可写#!/bin/bashFILE="/tmp/test.log"if[-r"$FILE"][-w"$FILE"];thenecho"文件可读可写"elseecho"文件不可读或不可写"fi12.1.2.2 数值比较运算符仅适用于整数比较,字符串比较不可使用。运算符含义-eq等于-ne不等于-gt大于-lt小于-ge大于等于-le小于等于

更多文章