232第四部分基础shell编程-LinuxTone.Org.PDF

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
232第四部分基础shell编程-LinuxTone.Org.PDF

下载 第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命令均接受一般格式: 命令 选项 文件 第20章 向脚本传递参数 225 下载 选项部分最多可包含 1 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.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 。 226 第四部分 基础s h e l l编程 下载 20.1.3 使用shift处理文件转换 s h i f t可使控制命令行选项更加容易。下面构造一个转换脚本,使用 t r将文件名转换为大写 或小写。 脚本选项为: -l 用于小写转换。 -u 用于大写转换。 使用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 。 第20章 向脚本传递参数 227 下载 *模式也匹配传递过来的所有文件名,以便用 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 如果给出此选项,设其

文档评论(0)

zcbsj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档