Linux Shell编程:分支结构与流程控制

需积分: 9 4 下载量 118 浏览量 更新于2024-08-25 收藏 152KB PPT 举报
"该资源是一份关于流程控制和分支结构的Shell入门PPT,由杨建新教授讲解。主要介绍了Linux Shell编程基础,包括如何编写和执行脚本、使用变量以及进行简单的数值运算。此外,还讲解了各种常用的系统变量,并通过实例展示了如何在脚本中应用这些概念。" 在Shell编程中,流程控制是非常关键的部分,因为它决定了脚本如何根据不同的条件执行不同的操作。以下是主要的知识点: 1. **分支结构**: - `if...then...else...fi` 结构用于进行单条件判断。如果条件满足,执行then后的命令;如果不满足,则执行else后的命令。 - `if...then...elif...then...fi` 允许添加多个elif部分,以检查多个条件,执行第一个满足条件的块。 2. **case语句**: - `case var in pattern1) commands ;; pattern2) commands ;; esac` 是一种多条件分支结构,根据变量var匹配到的不同模式执行相应的命令。`;;` 表示每个模式块的结束,`*)`通常用于匹配所有未明确列出的情况。 3. **脚本执行与Shell指定**: - 脚本首行可以指定使用的Shell,如`#!/bin/bash`,这被称为shebang行。 - 如果脚本首行没有shebang,系统会根据默认规则执行,例如Bourne Shell。 4. **执行Shell脚本**: - 可以通过`sh scriptname`或`./scriptname`方式运行脚本,后者要求脚本具有执行权限。 5. **变量使用**: - 变量赋值:`var=string`,取值时使用`$var`。 - 数值运算通常需要借助外部命令`expr`,如`expr $i + 3`。 6. **常用系统变量**: - `$HOME` 用户主目录 - `$PATH` 指定命令搜索路径 - `$TZ` 时区设置 - `$MAILCHECK` 检查新邮件的时间间隔 - `$PS1` 和 `$PS2` 提示符定义 - `$MANPATH` man指令的搜索路径 7. **特殊变量**: - `$0` 脚本自身的名字 - `$n` (n=1..9) 第n个命令行参数 - `$*` 所有参数作为一个字符串 - `$#` 参数个数 - `$$` 当前进程ID - `$!` 上一个后台命令的PID - `$?` 上一个命令的退出状态(成功为0,失败为非0) 8. **实例应用**: - 示例1演示了如何定义和使用变量,以及如何修改`$PATH`环境变量。 - 示例2展示了如何获取脚本名、参数值、参数个数等信息,以及使用`shift`命令移动参数。 这些基本概念和操作构成了Shell脚本编程的基础,通过熟练掌握它们,你可以编写出功能丰富的自动化脚本来简化日常的系统管理任务。