我知道 C(或者为什么不是 C++)是对此的自然选择,但出于个人原因,我想在 Java 中尝试。
我要实现的:
|
>
>>>
- 一些内置函数,例如
echo
和if
我正在考虑使用 ProcessBuilder、PipedInputStream、PipedOutputStream 等来实现我的目标。
您认为不依赖 JNI 是否可行?
我应该使用像 antlr 这样的工具来帮助我处理语法,还是你认为它对我需要的东西来说太过分了?
还有其他建议、 Material 吗?
最佳答案
唯一真正的挑战是输入的实际解析,特别是如果你想模拟 bash,在这种情况下我肯定会使用 Antlr 来构建语法和相关代码。我认为使用 Antlr 并不过分,因为它有助于提供正确的解析并让您更轻松地实现实际的 shell 函数,因为它会删除您必须编写的大部分代码。有些领域可能需要 JNI,但我认为除了少数特殊情况外,它不会是代码中非常重要的部分。
我会看看其他 shell 实现,我也知道有一些大学类(class)涵盖操作系统,它们的作业与此类似。
关于java - 是否可以仅使用纯 Java 编写类似于 bash 的 shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11381417/