是否有任何shell(特别是bash或ksh)检查程序可以测试shell脚本的样式,最佳实践,命名约定等?(像Lint for C,或Perl :: Critic for Perl.)
我知道使用ksh你可以通过运行来进行语法检查,ksh -n script.ksh但我希望的不仅仅是sytax检查 - 解析/分析实际代码的东西?
我可能运气不好,但我想这并没有伤害.
以下shell脚本在/bin/true为第一个参数提供时执行良好,但在执行期间可能会因语法错误而失败!
#!/bin/sh
if $1 ; then exit; fi
/tmp/asdf <<< ASDF # Something with syntax error in POSIX
Run Code Online (Sandbox Code Playgroud)
当然,静态检查可以避免一些语法错误(如果不是全部?)?如何静态检查给定的Shell命令语言脚本是否在语法上有效?
编辑:在这个问题中已经回答了检查Bash脚本中的语法错误.
编辑#2:请注意,即使使用和标志执行,Bash也无法正确检查语法是否符合POSIX .+B--posix-n
我有一个用 Bash 编写的脚本列表,现在我需要将它们转换为 Shell 脚本。我知道 bash 是 Shell 规范的扩展实现,因此,我正在寻找在 Bash 中实现的扩展的一些规范,即 Bash 中不属于 Shell 规范的内容,因此我可以查看我的脚本并进行适当的修改。有这样的文件吗?或者,将不胜感激有关如何进行转换的任何其他建议。