注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

脚本调试那些事  

来自哎哟喂嘞   2011-09-01 16:49:02|  分类: Linux相关 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近在调试shellpython等脚本,中间遇到一些问题,现记录在此

1.       脚本的exit code

脚本的退出码可以返回给脚本的调用者,读取到不同的code值,可以表明程序是执行成功还是遇到什么类型的错误退出了。

之前不知道这个code的数值范围只有0255,错误地自定义了一个400code,在调试过程中发现程序返回了144code,但我并没有定义过这个code,只能在脚本中添加echoprint语句定位错误发生的地点,最后定位到exit(400)这句,当时很奇怪明明设置的是400返回,echo $?打印出的却是144

Google了一阵之后发现code的范围只有8位,高于8位的部分被截断了,400的低8位是0x90=144,所以今后自定义code的时候切忌不能超出255的范围,负值的情况也是类似,如-1对应的是255

2.       BOMbyte order mark)引起的异常

BOM可以简单的理解为一个文件头,在Windows中可以使用BOM来标记文本文件的字节顺序和编码方式。UTF-8编码的文件中BOM可有可无。

以上是背景,在脚本中调用staf执行stax xml文件的时候有时会抛出异常,主要的提示信息是content is not allowed in prolog,一开始以为是中文编码导致的,没太在意那条信息,但搜索一把后未果。后面还是根据上面的错误信息定位了BOM的问题,在notepad++上进行了文件的转换,如下图,选择convert to UTF-8 without BOM
脚本调试那些事 - 网易杭州QA - 网易杭州 QA Team
 
总之,脚本的调试是个不断echo或者print的过程,没有了强大的IDE帮助后,我们只能简单粗暴外加google大神求助啦。
  评论这张
 
阅读(637)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016