Linux培训
达内IT学院

400-111-8989

我们会遇到的脚本调试那些事

  • 发布:Linux培训
  • 来源:网络
  • 时间:2017-03-31 17:03

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

1. 脚本的exit code

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

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

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

2. BOM(byte 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

总之,脚本的调试是个不断echo或者print的过程,没有了强大的IDE帮助后,我们只能简单粗暴外加google大神求助啦。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:三问:Linux操作系统安全加固
下一篇:学习linux从哪开始?

Linux中高效编写Bash脚本的10个技巧

拯救者Linux:我是如何给我的团队引入Linux的

Linux只有十三个字符的经典Fork炸弹

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省