Bourne Shell入门与shell脚本编程指南

需积分: 19 1 下载量 155 浏览量 更新于2024-11-01 收藏 534KB PDF 举报
"这篇文档是关于Bourne Shell和shell编程的教程,主要适用于Linux程序员学习。由何斌武编写,大连理工大学LINUX选修课讲义,允许非商业性转载,但需保留版权声明。" Bourne Shell是UNIX系统中的一个经典命令解释器,由Stephen Bourne在Bell实验室开发。它是许多其他现代shell(如Bash)的基础,提供了丰富的命令行交互和脚本编程能力。Bourne Shell具有以下关键知识点: 1. **Shell基础**:Shell作为用户与操作系统之间的接口,负责解析用户的命令并执行。它提供了命令行提示符,通常为"$",可以通过`/etc/passwd`文件和用户配置文件(如`/etc/profile`和`~/.profile`)来定制。 2. **选项**:Bourne Shell有多种选项来改变其行为,例如: - `-n`:仅检查脚本的语法,不执行。 - `-x`:启用命令追踪,显示执行的每个命令。 - `-i`:交互模式,允许用户直接在shell下输入命令。 - `-e`:如果命令失败,立即停止执行。 - `-v`:显示shell读取的每一行输入。 3. **特殊字符**:在shell脚本中,特殊字符如`$`, `;`, `&`, `|`, `(`, `)`等有特定含义,用于流程控制、变量引用或命令组合。 4. **Shell变量**: - **用户定义变量**:用户可以创建和修改自己的变量,通过`var=value`形式设置。 - **环境变量**:全局变量,可被子进程继承,如`PATH`控制可执行文件的搜索路径。 - **位置变量(shell参数)**:代表脚本或命令行中传递的参数,例如`$1`, `$2`分别表示第一个和第二个参数。 5. **Shell脚本编程**:编写包含一系列命令的文本文件,可以通过`.sh`扩展名标识。脚本可以包含条件测试(if-then-else语句)、循环(for, while, until循环)以及函数。 6. **条件测试**:`test`命令或`[ ]`结构用于检查各种条件,如文件存在、文件类型、字符串比较等。 7. **循环及重复控制**:`for`循环常用于遍历列表,`while`和`until`循环根据条件反复执行代码块。 8. **Shell定制**:通过修改`/etc/bashrc`、`~/.bashrc`等配置文件,可以定制shell的行为,如别名、函数和环境变量。 9. **受限Shell (Restricted Shell)**:`sh -r`或`/bin/rsh`是一种安全模式,限制了某些可能有害的操作,如改变工作目录、修改PATH或使用重定向。 Bourne Shell的学习对于Linux程序员来说至关重要,因为它提供了自动化任务、系统管理以及与其他程序交互的强大工具。了解并熟练掌握这些知识点,可以极大地提高工作效率和系统管理能力。