【发布时间】:2014-03-16 20:08:08
【问题描述】:
我正在寻找一种方法来验证 bash 脚本的语法而不执行它。
bash -n 似乎只验证基本 bash 语法,我缺少的是:
- 函数名验证
- 未初始化的参数验证
关于如何实现这一目标的任何想法?
我还缺少对函数采用的参数数量的验证, 但在 bash 中,这在理论上听起来是一件非常困难的事情。
换句话说,我想做的几乎就是获取一个 bash 脚本并像编译一个 c++ 程序一样“编译”它。
【问题讨论】:
-
请问动机是什么?这可能有助于我们提供最佳解决方案。
-
我熟悉拼写检查。这还不足以满足我的需要。我想为开发人员提供 API,而不是在发布产品之前“编译”他们的代码……这就是我在运行时检查代码的动机。想法?
-
你可以运行download并将shellcheck编译成run locally。那会有帮助吗?除此之外,运行 bash -n 或使用 set -x 没有太多的 shell 脚本选项。有一些选项可以转换为二进制文件,但我认为您正在寻找的是构建系统。有一些用于进行单元测试的框架;如果有帮助,我已经编制了一份清单。如果你想要这些信息,看起来有人也已经构建了一个构建系统。
标签: linux bash syntax compilation