常见脚本错误类型

随着脚本变得越来越复杂,当脚本运行错误,执行结果出人意料的时候, 我们就应该查看一下原因了。
1.语法错误
一个普通的错误类型是语法。语法错误涉及到一些shell 语法元素的拼写错误。大多数情况下,这类错误会导致shell 拒绝执行此脚本。
a.丢失引号
b.丢失或意外的标记
c.预料不到的展开
2.逻辑错误
不同于语法错误,逻辑错误不会阻止脚本执行。虽然脚本会正常运行,但是它不会产生期
望的结果,归咎于脚本的逻辑问题。
a.不正确的条件表达式。很容易编写一个错误的if/then/else 语句,并且执行错误的逻辑。有时候逻辑会被颠倒,或者是逻辑结构不完整。
b.“超出一个值”错误。当编写带有计数器的循环语句的时候,为了计数在恰当的点结束,循环语句可能要求从0 开始计数,而不是从1 开始,这有可能会被忽视。这些类型的错误要不导致循环计数太多,而“超出范围”,要不就是过早的结束了一次迭代,从而错过了最后一次迭代循
c.意外情况。大多数逻辑错误来自于程序碰到了程序员没有预见到的数据或者情况。这也可以包括出乎意料的展开,比如说一个包含嵌入式空格的文件名展开成多个命令参数而不是单个的文件名。

因此,当编程的时候,验证假设非常重要。这意味着要仔细得计算脚本所使用的程序和命令的退出状态。首先检查一个名字,看看它是否为一个真正存在的目录,另一个是cd
命令是否执行成功。如果任一种情况失败,就会发送一个错误说明信息到标准错误,然后脚本终止执行。

另外,在各类软件开发中(包括脚本),测试是一个重要的环节。通过执行每一个测试条件,就达到了一个良好的测试覆盖率。如dir name 包含一个已经存在的目录的名字
dir name 包含一个不存在的目录的名字dir name 为空。测试也是一个时间的函数。不是每一个脚本功能都需要做大量的测试。问题关键是确定什么功能是最重要的。因为测试若发生故障会存在如此潜在的破坏性,所以代码片在设计和测试段期间都应值得仔细推敲。

如果测试暴露了脚本中的一个问题,那下一步就是调试了。找到问题区域,追踪,执行时检查数值,完善脚本。

你可能感兴趣的:(常见脚本错误类型)