LINUX与UNIX SHELL编程指南020.pdf
《LINUX与UNIX SHELL编程指南020.pdf》由会员分享,可在线阅读,更多相关《LINUX与UNIX SHELL编程指南020.pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下载第20章 向脚本传递参数前面已经讲到如何使用特定变量$1.$9向脚本传递参数。$#用于统计传递参数的个数。可以创建一个u s a g e语句,需要时可通知用户怎样以适当的调用参数调用脚本或函数。本章内容有:shift。getopts。shift和g e t o p t s例子。简单地说,下述脚本框架控制参数开始与停止。脚本需要两个参数,如果没有输入两个参数,那么产生一个u s a g e语句。注意这里使用c a s e语句处理输入脚本的不同参数。执行脚本,输入以下参数,结果为:任何U N I X或L I N U X命令均接受一般格式:命令 选项 文件选项部分最多可包含 1 2个不同的值。上
2、述脚本中,如果必须控制不同的命令选项,就要加入大量脚本。这里只控制两个选项:开始和停止。幸运的是s h e l l提供s h i f t命令以帮助偏移选项,使用s h i f t可以去除只使用$1到$9传递参数的限制。20.1 shift命令向脚本传递参数时,有时需要将每一个参数偏移以处理选项,这就是s h i f t命令的功能。它每次将参数位置向左偏移一位,下面用一段简单脚本详述其功能。脚本使用 w h i l e循环反馈所有传递到脚本的参数。你可能想像,上述脚本一直执行,直到命令行中不再有更多的参数输入。错了,因为没有办法偏移到脚本中下一个参数,将只会反馈出第一个参数。执行结果如下:20.
3、1.1 shift命令简单用法使用s h i f t命令来处理传递到脚本的每一个参数。改动后脚本如下:现在再执行,结果将会不同:20.1.2 命令行输入的最后一个参数虽然还没有讲e v a l命令,如果需要知道命令行中输入的最后一个参数(通常是一个文件名),可以有两种选择:使用命令eval echo$#;使用s h i f t命令:shift expr$#-2。第20章 向脚本传递参数225下载20.1.3 使用shift处理文件转换s h i f t可使控制命令行选项更加容易。下面构造一个转换脚本,使用 t r将文件名转换为大写或小写。脚本选项为:-l 用于小写转换。-u 用于大写转换。使用
4、s h i f t命令将脚本放在一起以控制-l和-u选项。脚本的第一版本如下:首先检查脚本是否有参数,如果没有,打印 u s a g e语句,如果有需要处理的参数,使用c a s e语句捕获每一个传送过来的选项。当处理完此选项后,使用 s h i f t命令搜集命令行中下一选项,如果未发现匹配选项,打印u s a g e语句。当向脚本传递两个无效参数时,输出如下:下一步就是要用c a s e语句处理选项后传递过来的文件名。为此需改动 c a s e语句。c a s e语句中捕获任意模式*应该为-*以允许传递无效选项,例如-p或-q。226第四部分 基础s h e l l编程下载*模式也匹配传递
5、过来的所有文件名,以便用 f o r循环处理每一个文件,这里也将使用-f选项检测文件是否存在。改动后的c a s e语句如下:还需要指定与选项(-l,-u)相关的变量设置。这些变量是:T R C A S E 保存转换类型(大写或小写)。E X T所有文件转换后,大写文件名为.U C,小写为.L C,不保存初始文件状态。O P T如果给出此选项,设其为 y e s,否则为n o。如果没有给出此选项,捕获此信息并反馈出来。其他部分脚本用于实际转换处理,这里即 t r命令。t r命令放在c a s e语句f o r循环中读取文件名进行处理的脚本末尾部分。以下为完整脚本:第20章 向脚本传递参数227
6、下载228第四部分 基础s h e l l编程下载执行上述脚本,给出不同选项,得结果如下:转换一个不存在的文件:传递不正确选项:只键入文件名,希望脚本提示更多帮助信息:输入两个有效文件及第三个无效文件:使用上述脚本可以将许多文件转换为同样的格式。编写一段脚本,使其控制不同的命令行选项,这种方式编程量很大,是一件令人头疼的事。假定要写一段脚本,要求控制以下各种不同的命令行选项:命令-l-c 23-v文件1文件2s h i f t命令显得力不从心,这就需要用到 g e t o p t s命令。20.2 getoptsg e t o p t s可以编写脚本,使控制多个命令行参数更加容易。g e t
7、o p t s用于形成命令行处理标准形式。原则上讲,脚本应具有确认带有多个选项的命令文件标准格式的能力。20.2.1 getopts脚本实例通过例子可以更好地理解g e t o p t s。以下g e t o p t s脚本接受下列选项或参数。a 设置变量A L L为t r u e。h 设置变量H E L P为t r u e。第20章 向脚本传递参数229下载 f 设置变量F I L E为t r u e。v 设置变量V E R B O S E为t r u e。对于所有变量设置,一般总假定其初始状态为 f a l s e:g e t o p t s一般格式为:getopts option_str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LINUX与UNIX SHELL编程指南020 LINUX UNIX SHELL 编程 指南 020
限制150内