gpt4 book ai didi

java - 类似于 POSIX shell 的 Java 实现

转载 作者:搜寻专家 更新时间:2023-10-31 19:58:42 26 4
gpt4 key购买 nike

  1. 有人知道在 Java 中编写脚本的类似 POSIX shell 语言的实现吗?

  2. 如果这不可用,有人知道我可能错过的某处是否有可用的 ANTLR 或 JavaCC 语法吗?

编辑:我知道我有 Jython、JRuby、Groovy、JavaScript 可用于编写脚本,但它们都没有类似 bash 的语法。

这不会用于一起编写 Java 代码脚本,而是允许人们运行预定义的命令,这些命令将使用大型第三方媒体 Assets 管理系统进行操作。

我想运行这样的东西:

ls | grep "something" > output

其中 ls 和 grep 是 Java 命令。 (这只是为了说明目的)

谢谢

最佳答案

  1. 我所知道的所有 POSIX shell 实现都是用 C 编写的,但我没有特别研究过这个问题。

  2. POSIX shell(我假设这就是您所说的类似 bash 的意思)语法相当复杂。词法分析和解析之间没有明确的区别。另一方面,解析几乎不需要任何回溯。所以解析器生成器可能帮不上什么忙。

编辑 因为你已经澄清你想要 shell 语法:

我认为最好的办法是使用现有的 shell。以下是一些架构注意事项:

  • 您可以将您的应用程序链接到现有的 shell 中。添加操纵您的 Assets 管理系统的内置插件。可能存在许可问题。这为每个 shell 实例提供了一个应用程序实例。

  • 您可以使用简单的客户端-服务器架构,其中服务器是应用程序的一部分,只响应没有控制逻辑的简单命令,客户端链接到 shell 中,不访问应用程序数据直接地。一些 shell(bash、ksh、zsh)已经具有用于 TCP 访问的方法。

    您可能不需要重新发明一种通信协议(protocol);考虑通过 HTTP(S),它的服务器和客户端实现很容易获得。事实上,您甚至可以在客户端只使用围绕 wget 或 curl 的脚本,因此根本不需要修补 shell(这会使客户端保持复杂的状态)。

    <

如果您需要修补 shell(例如,添加内置函数),请考虑具有模块系统的 zsh。您的应用程序(或客户端部分)将显示为定义内置函数和您需要的任何其他内容的模块(例如 zsh 发行版包括 ftp 和 mmap 等模块)。

关于java - 类似于 POSIX shell 的 Java 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3399075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com