Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何shell脚本和/或Makefile静态代码分析器?_Shell_Makefile_Static Code Analysis_Syntax Checking - Fatal编程技术网

是否有任何shell脚本和/或Makefile静态代码分析器?

是否有任何shell脚本和/或Makefile静态代码分析器?,shell,makefile,static-code-analysis,syntax-checking,Shell,Makefile,Static Code Analysis,Syntax Checking,或者如何确保Makefiles/脚本的可靠性 更新:shell脚本指的是sh方言(bash、zsh等),makefile指的是gnumake。我知道,它们是不同的动物,但它们有许多共同点 是的,我知道,静态代码分析不能验证所有可能的情况,我需要以一种可靠的方式编写我的makefile和shell脚本。我只需要一个工具,它会告诉我,当我使用坏习惯时,当我忘记它们时,或者在大脚本中没有注意到它们时。不是为我修复错误,只是再看一看。对于sh脚本,将执行一些静态分析检查,例如检测变量修改何时被子shel

或者如何确保Makefiles/脚本的可靠性

更新:shell脚本指的是sh方言(bash、zsh等),makefile指的是gnumake。我知道,它们是不同的动物,但它们有许多共同点


是的,我知道,静态代码分析不能验证所有可能的情况,我需要以一种可靠的方式编写我的makefile和shell脚本。我只需要一个工具,它会告诉我,当我使用坏习惯时,当我忘记它们时,或者在大脚本中没有注意到它们时。不是为我修复错误,只是再看一看。

对于sh脚本,将执行一些静态分析检查,例如检测变量修改何时被子shell隐藏,何时意外使用
[$foo=bar]
或者何时忽略引用可能包含空格的变量。它还对一些风格问题进行了评论,例如在可以使用参数扩展的情况下无用地使用cat或使用sed。

静态代码分析器不会告诉您代码是否可靠。可靠性通过自动和/或手动测试实现。你想干什么?你是说类似于
pylint
风格的程序,哪种类型的可读性检查?“可靠性测试”?[这就像“质量测试”]我不认为这是获得可靠性的方式。通过将应用程序(C#或makefile)设计为在各种预期情况下使用良好的输入数据正常运行,并对输入数据进行合理的健全性测试,您可以获得可靠性。OP希望IMHO有一个工具,告诉他他的make/脚本在各种常见情况下都会失败,这样他就可以解决这些问题。Shark:这确实是两个非常不同的问题,因为“脚本”语言和“makefile”有着极其不同的语法和根本不同的语义。两者都有“困难”的解析问题,因为宏/字符串替换往往在复杂脚本中无处不在;除非分析工具能够重复所有这些,否则很难知道说了什么,更不用说是否说错了。Shark:我认为你需要弄清楚哪种脚本语言(有无数种)和哪种语言。(GNU?经典unix?nmake女士?…)版主不会做任何事情;只有你会。我认为您严重误解了脚本语言与makefiles的区别;它们具有完全不同的执行语义。