Linux命令、编辑器与Shell编程08.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:75 大小:2.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Linux命令、编辑器与Shell编程08.pdf

Linux命令、编辑器与Shell编程08.pdf

预览

免费试读已结束,剩余 65 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

8BourneAgainShell本章要点:●初始化文件本章承接第5章内容,继续关注BourneAgainShell(bash)。●重定向标准错误输出注意tcsh某些功能的实现不同于bash,本书会在合适的地方,●编写简单的shell脚本标注出所讨论特性的另一个实现方法的所在位置。第11章延●作业控制伸了本章的内容,探讨了控制流命令和BourneAgainShell编程●操作目录栈更高级的内容。bash的主页是www.gnu.org/software/bash。bash●参数和变量的info页面是BourneAgainShell最完整的参考手册。●进程BourneAgainShell和TCShell(tcsh)都是命令解释器,同时●命令历史机制也是高级编程语言。作为命令解释器,它们通过提示符响应并●重新执行和编辑命令处理用户在命令行界面上输入的命令。而作为一门编程语言,●别名它们将处理存放在所谓shell脚本文件中的命令。如其他编程语●函数言一样,shell也有变量和控制流命令(比如for循环和if语句)。●控制bash特性和选项当把shell作为命令解释器时,用户可以定制工作环境。可●处理命令行以在命令提示符中显示当前工作目录的名称;或者创建一个函数或者cp的别名,使其不覆盖特定类型的文件;又或者利用关键字变量改变shell工作方式的某些方面,等等。还可以编写脚本来执行用户的指令,还可以编写执行用户指令的脚本,这222第Ⅲ部分shell些脚本可以是包含较长复杂命令的单行脚本,也可以是更长的脚本,例如一个先运行报告、然后打印报告、打印完毕后还可发出提醒的脚本。更复杂的脚本本身就是程序,它们不仅仅运行其他程序。第11章中的一些示例就属于这样的脚本。大多数系统shell脚本都是在BourneAgainShell下面编写并运行的。如果在单用户模式下工作,比如在启动系统或者执行系统维护、管理或者修理任务时,那么,熟悉该shell将是非常有必要的。本章内容扩充了第5章描述的shell的交互特性,解释了如何创建和运行简单的shell脚本,讨论如何进行作业控制,介绍shell编程的基本方面,讨论命令历史和别名,同时还描述了命令行扩展。第9章内容为TCShell的交互使用以及TCShell编程,第11章则展示了一些关于shell编程的更有挑战性的问题。8.1背景知识BourneAgainShell基于一个早期的UNIXshell即BourneShell。为避免冲突,本书将其称为原BourneShell,它是由AT&TBell实验室的SteveBourne编写的。历经多年,原BourneShell已经被扩充,但是它仍然还是很多商业版本UNIX的基本shell。shshell由于原BourneShell悠久的历史和成功的应用,它被用来编写很多用于帮助管理UNIX系统的shell脚本。尽管BourneAgainShell中包含了很多原BourneShell中没有的扩展和特性,bash仍然与原BourneShell保持兼容,这样用户就可以在bash下面执行BourneShell脚本。在UNIX系统下面,原BoureShell称为sh。在Linux系统下面,sh则是bash的符号链接,这样可以确保那些需要BourneShell的脚本仍然能够执行。当作为sh调用时,bash将尽可能地模拟原BourneShell。KornShellSystemVUNIX引入了KornShell(ksh),它由DavidKorn编写。这个shell扩充了原BourneShell,并添加了很多新的特性。BourneAgianShell的一些特性,比如命令别名和命令行编辑,都是基于KornShell的类似特性。POSIX标准PASC(IEEE’sPortableApplicationStandardsCommittee,IEEE的可移植应用标准委员会)开发了相关POSIX族标准(PortableOperatingSystemInterface,可移植操作系统接口)。www.opengroup.org/austin/papers/posix_faq.html上有一个全面的FAQ(问答集),包含了很多链接。POSIX标准1003.2描述了shell功能特性。BourneAgainShell提供的特性符合该POSIX标准需求。人们正在努力使BourneAgainShell完全遵守POSIX标准。在此期间,如果调用bash时使用--posix选项,则BourneAgainShell的行为将更加符合POSIX需求。