java - 是否可以仅使用纯 Java 编写类似于 bash 的 shell?

标签 java bash shell

我知道 C(或者为什么不是 C++)是对此的自然选择,但出于个人原因,我想在 Java 中尝试。

我要实现的:

  • |
  • >
  • >>>
  • 一些内置函数,例如 echoif

我正在考虑使用 ProcessBuilder、PipedInputStream、PipedOutputStream 等来实现我的目标。

您认为不依赖 JNI 是否可行?

我应该使用像 antlr 这样的工具来帮助我处理语法,还是你认为它对我需要的东西来说太过分了?

还有其他建议、 Material 吗?

最佳答案

唯一真正的挑战是输入的实际解析,特别是如果你想模拟 bash,在这种情况下我肯定会使用 Antlr 来构建语法和相关代码。我认为使用 Antlr 并不过分,因为它有助于提供正确的解析并让您更轻松地实现实际的 shell 函数,因为它会删除您必须编写的大部分代码。有些领域可能需要 JNI,但我认为除了少数特殊情况外,它不会是代码中非常重要的部分。

我会看看其他 shell 实现,我也知道有一些大学类(class)涵盖操作系统,它们的作业与此类似。

关于java - 是否可以仅使用纯 Java 编写类似于 bash 的 shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381417/

相关文章:

linux - E138 : Can't write viminfo file $HOME/. 虚拟信息

java - MPAndroid 日期格式化和解析失去精度

linux - 期望 ping 脚本跳过发送步骤

bash - 查找与给定模式匹配并排除给定模式的所有文件?

Linux 从串行端口读取 - fork 解决方法

bash - bash中的视频方向检测

linux - 连接文件并删除源文件

java - 相当于 Paths.get ("abc/def.jpg")在 C 和 C++ 中获取与操作系统无关的路径?

java - Jframe帮助使用Boxlayout

java - 部署带有图像的 jar 文件时遇到问题