Java 执行前验证bash命令

Java 执行前验证bash命令,java,bash,shell,Java,Bash,Shell,我正在从输入读取一些命令,并在java程序的运行时执行这些命令。如果有任何语法或语义错误,它将在运行时失败。相反,我想早点失败。所以我想在执行之前验证命令 我该怎么做??有什么简单的方法吗 例: 此处,此命令末尾缺少单引号(')。在我的java程序中,它将在运行时失败。如果能早点失败那就太好了。所以我只想在程序开始时验证每个命令 我在寻找一个最佳的方法。不,没有简单的方法。有一种很难的方法,这需要您提出一组规则并使用某种解析器。有一种低效的方法,即尝试执行命令只是为了看看它是否有效。也许还有其他

我正在从输入读取一些命令,并在java程序的运行时执行这些命令。如果有任何语法或语义错误,它将在运行时失败。相反,我想早点失败。所以我想在执行之前验证命令

我该怎么做??有什么简单的方法吗

例:

此处,此命令末尾缺少单引号(')。在我的java程序中,它将在运行时失败。如果能早点失败那就太好了。所以我只想在程序开始时验证每个命令


我在寻找一个最佳的方法。

不,没有简单的方法。有一种很难的方法,这需要您提出一组规则并使用某种解析器。有一种低效的方法,即尝试执行命令只是为了看看它是否有效。也许还有其他的方法,但我认为其中任何一种都不简单

你用谷歌搜索过这个吗?有一个很小但非零的可能性是别人已经写了它。

试试这个:

sh -n yourscriptfile
bash -n yourscriptfile

set-u
还有助于捕捉打字错误和未初始化的变量

检查语法和参数的最佳方法是使用与您期望的内容相对应的正则表达式解析用户输入

如果它与您正在等待的内容不匹配,那么您可以向用户提示“使用说明”。

哦,这真是“简单”

  • 采用bash语法,例如来自或采用ANTLR语法形式
  • 将语法移植到java。您可以去掉所有的C部分,从真正的bahs语法中移植核心语法,或者使用预处理的ANTLR语法。使用你的语法,或。这三种解决方案都需要外部工具
  • 在运行bash命令之前,可以使用语法对其进行验证

  • “有什么简单的方法吗”不,说
    bash-n文件名
    。更多信息请参见上面的问题。我不是在看剧本。所有命令都是单独的命令。我想验证每个单独的命令。它怎么可能是一个重复的问题???我正在验证单个命令。不是脚本…:(请您解释一下它的作用。在当前状态下,这几乎不是一个答案。我没有阅读脚本。所有命令都是单独的。我想验证每个单独的命令。只是语法validation@RajeshBarri如果您想验证单个命令,那么您应该构建自己的验证脚本他above@Bart:“-n”表示“noexec”,并告诉shell不要执行任何命令。感谢您的回复..我正在考虑只编写解析器。在此之前,我正在寻找其他最佳方法。。
    sh -n yourscriptfile
    bash -n yourscriptfile