Bri*_*anH 45 shell static-analysis checkstyle
是否有任何shell(特别是bash或ksh)检查程序可以测试shell脚本的样式,最佳实践,命名约定等?(像Lint for C,或Perl :: Critic for Perl.)
我知道使用ksh你可以通过运行来进行语法检查,ksh -n script.ksh
但我希望的不仅仅是sytax检查 - 解析/分析实际代码的东西?
我可能运气不好,但我想这并没有伤害.
u0b*_*6ae 42
我发现了shellcheck:它测试引用中的常见错误以及您忽略的其他内容("因为它有效").
Bri*_*ell 33
Debian和Ubuntu项目使用一个脚本checkbashisms
,该脚本查找可能表明某人依赖于/bin/sh
存在的特定模式bash
.
除此之外,大多数shell都有-n
解析和报告错误的选项.您可以针对多个不同的shell检查脚本,以确保它仅使用可移植的语法:
for shell in zsh ksh bash dash sh
do
echo "Testing ${shell}"
${shell} -n my_script.sh
done
Run Code Online (Sandbox Code Playgroud)
编辑添加:自编写此答案以来,已编写shellcheck,如后面的答案所示.与以前的建议相比,这比linting shell脚本做得更彻底.