- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
下载
第23章 调 试 脚 本
s h e l l编程最烦人的一项工作是调试问题。有一些方法可以借鉴,但是最好能在问题出现
前防止大部分错误,为此应遵循以下规则。
将设计脚本分成几个任务或过程,然后在继续下一步前分别予以测试。
本章内容有:
• 一般错误。
• set 命令介绍。
没有比在脚本中发现一个难以察觉的错误更令人头疼的了,然而,随着编程经验不断丰
富,查询手段也相应增加。
经常碰到的问题是忘了使用引号或在 i f语句末尾未加f i 。
需要牢记的一点是当 s h e l l打印出一个脚本错误后,不要只看那些疑问行。而是要观察整
个相关代码段。s h e l l不会对错误进行精确定位,而是在试图结束一个语句时进行错误统计。
23.1 一般错误
23.1.1 循环错误
f o r 、w h i l e 、u n t i l和c a s e语句中的错误是指实际语句段不正确。也许漏写了固定结构中的
一个保留字。
下面错误打印信息 d o n e ,这是一个很好的线索。因为这时知道正在处理一个 w h i l e语句。
回溯脚本段,检查w h i l e语句,是否漏写或错写了关键字,如 d o或者正在使用的条件语句。
23.1.2 典型的漏写引号
第二个典型错误是漏写引号错误。经常要注意这个问题,因为此错误经常出现。这里给
出解决这类错误的唯一方案是在脚本中确保所有引号成对出现。
当s h e l l打印出错误行后,通常在 v i编辑器中查看文件。使用 v i 的set nu选项调试错误,先
进入v i ,然后点击 E S C 键,后跟一冒号,再键入 set nu return ,这时给出文本行号,然后
进入s h e l l打印错误行。
23.1.3 测试错误
另一个常见错误是在使用 - e q语句时忘记在测试条件一边使用数字取值。
如果得到下列错误提示,通常是由于两件事情:需要在变量和方括号间加空格;在方括
号里漏写操作符。
第23章 调 试 脚 本 275
下载
[: missing ]
23.1.4 字符大小写
经验上讲大多数错误是由于使用变量时大小写保持不一致。例如经常在开始定义时用大
写,然后在变量调用时用了小写字符,这样难免变量会没有赋值。
23.1.5 for循环
使用f o r循环时,有时会忘了在循环的列表部分用 $符号,特别是在读取字符串时。
23.1.6 echo
最有用的调试脚本工具是 e c h o命令。一般在可能出现问题的脚本重要部分加入 e c h o命令,
例如在变量读取或修改操作其前后加入 e c h o命令。
使用最后状态命令判断命令是否成功,这里需要注意的是,不要使用 e c h o命令后直接加
最后状态命令,因为此命令永远为真。
23.2 set命令
s e t命令可辅助脚本调试。以下是 s e t命令常用的调试选项:
set -n 读命令但并不执行。
set -v 显示读取的所有行。
set -x 显示所有命令及其参数。
将s e t选项关闭,只需用+ 替代- 。有人总认为+应该为开,而-应为关闭,但实际刚好相反。
可以在脚本开始时将 s e t选项打开,然后在结束时关闭它。或在认为有问题的特殊语句段
前后打开及关闭它。
下面看一个例子。以下脚本将名字保存在变量列表中。用户输入名字, f o r循环循环变量
列表查看是否有匹配模式。注意这里在脚本开始时使用了 set -x ,并在结尾部分关闭它。
运行此脚本,给出一个不在列表中的名字,输出如下:
276 第四部分 基础s h e l l编程
下载
输出显示对变量列表进行循环时所有的比较操作。当读取文件或进行字符串或取值的比
较发现问题时,使用 s e t命令是很有必要的。
23.3 小结
跟踪错误的最好方式是亲自查阅脚本,并使
您可能关注的文档
最近下载
- 华为战略神器“五看三定”模型究竟是什么.doc VIP
- 【PPT课件】2018版安徽省建设工程计价依据宣贯(房建、装饰工程宣贯课件).docx
- 人教版英语八年级下册 Unit 9 Have you ever been to a museum 单元整体教学设计.docx VIP
- 表9.1.7 OPGW光缆安装检验批质量验收记录表.docx VIP
- 尊师惠师工作的创新策略与实施方案.docx
- 《旅游景区服务与管理》教案 第1课 认识旅游景区.pdf VIP
- 2025年宁夏中考语文试题及答案(word版).doc VIP
- 表9.1.3 导线、地线耐张管施工检验批质量验收记录表.docx VIP
- 麻醉术后苏醒延迟病例分析与管理.pptx VIP
- 2025至2030中国儿童口腔护理行业发展趋势与未来销售规模研究报告.docx VIP
文档评论(0)