Mic*_*ael 6 java linux shell dos batch-file
我编写了一个Java应用程序,它有一个while(input.readLine()),它继续读取输入,直到用户键入quit命令.我有一个.bat脚本在Windows中启动它,一个.sh在Linux中启动它.该应用程序在两者中都运行正常
在Windows中,如果您键入"check email"之类的命令并按Enter键,它将执行该命令.然后,在下一个提示符(即:下次Java应用程序读取输入行)时,您可以点击向上箭头,它会调用您的"检查电子邮件"命令.您可以按左箭头键向左移动光标等.这正是我想要的.
但是,在Linux上,按向上键会导致^ [[D出现.左右箭头键产生类似的ASCII输出,如^ [[C.
我听说过stty并查看了man页面,但是无法通过启动我的Java应用程序来弄清楚我需要在.sh脚本中进行更改.谁能帮我?
最简单的解决方案是使用外部包装器读取具有编辑功能的行,然后将其发送到您的程序。rlwrap是一个好的包装器。
\n\n使用单独的工具符合将单独的工具用于单独目的(行版本以及程序执行的任何操作)的 unix 哲学。这也很简单:只需让你的 shell 包装器运行rlwrap myprogram而不是myprogram.
底层readline 库(与 Java 中的任何方法无关readLine;您需要一个 Java 包装器,例如Java-Readline)需要进行更多的集成工作,并且将您的程序限制为 GPL。仅当您想要的不仅仅是包装器可以提供的 \xe2\x80\x94 主要是特定于应用程序的完成时才这样做。