编辑:此问题被标记为重复。尽管从更大的角度来看这可能是正确的,但库萨兰南达提供的答案使我对我的选择有了更好的理解。
如果在shell脚本中发生语法错误,则脚本的解释不一定会终止,而只会在脚本的下一行继续。在解释脚本时,是否有办法捕获这些语法错误的数量?
我真的很想像编译器报告那样,说明编译完成后的错误和警告数量。仅用于linux shell。
是的。如果其中的任何命令产生错误,则大多数Shell都具有终止当前脚本的功能。这通常是通过
set -e
并可能通过关闭
set +e
编辑:我误解了这个问题。Bash和其他Shell也具有-n
不执行脚本,但检查其语法错误的选项。
$ bash -n script.sh
无论是-e
和-n
选项由POSIX描述。对于-n
,标准说:
外壳程序应读取命令,但不执行命令;这可用于检查Shell脚本语法错误。交互式外壳可能会忽略此选项。
澄清:此答案是关于语法检查,而不是检查POSIX一致性。使用自己的语义扩展POSIX的外壳程序仍可以检查-n
使用扩展的语义编写的脚本的语法(带有)。这并没有说明shell或脚本的POSIX一致性,只是说明shell脚本在语法上是否对于所讨论的shell正确,这就是问题所在。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句