【问题标题】:Validate bash syntax验证 bash 语法
【发布时间】:2014-03-16 20:08:08
【问题描述】:

我正在寻找一种方法来验证 bash 脚本的语法而不执行它。

bash -n 似乎只验证基本 bash 语法,我缺少的是:

  1. 函数名验证
  2. 未初始化的参数验证

关于如何实现这一目标的任何想法?

我还缺少对函数采用的参数数量的验证, 但在 bash 中,这在理论上听起来是一件非常困难的事情。

换句话说,我想做的几乎就是获取一个 bash 脚本并像编译一个 c++ 程序一样“编译”它。

【问题讨论】:

  • 请问动机是什么?这可能有助于我们提供最佳解决方案。
  • 我熟悉拼写检查。这还不足以满足我的需要。我想为开发人员提供 API,而不是在发布产品之前“编译”他们的代码……这就是我在运行时检查代码的动机。想法?
  • 你可以运行download并将shellcheck编译成run locally。那会有帮助吗?除此之外,运行 bash -n 或使用 set -x 没有太多的 shell 脚本选项。有一些选项可以转换为二进制文件,但我认为您正在寻找的是构建系统。有一些用于进行单元测试的框架;如果有帮助,我已经编制了一份清单。如果你想要这些信息,看起来有人也已经构建了一个构建系统。

标签: linux bash syntax compilation


【解决方案1】:

bash -n 当然是做到这一点的基本方法。

不过,还有一个网站可以为您做一些验证: http://www.shellcheck.net/ -- 如果你想在本地运行它,网站上有一个指向source code 的链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多