【发布时间】:2014-06-26 22:54:19
【问题描述】:
我正在编写一个从 Javascript 读取输入并将这些读数发送到 bash 的程序。
我可以成功运行许多操作,例如“A-Z”字母、TAB、CTRL+C 等。但我意识到我无法正确发送以 bash 向上箭头。
如果我从 Javascript 读取 ascii 代码,我会得到以下解释 Binding arrow keys in JS/jQuery
37 - left
38 - up
39 - right
40 - down
但是,当我将箭头向上发送到终端时,十进制键码 38,我写了一个 & 符号(如按照 ascii 表 http://www.asciitable.com/)
所以,我的问题是:我必须从 Java 向 bash 发送什么代码来告诉 bash “向上箭头键”?
PD_ 我意识到它可能会因操作系统而异,并且此代码可能不会被视为 ascii 代码,正如这篇文章所建议的那样:enter link description here
编辑 我使用以下代码从 Java 写入 bash:
JSch jsch = new JSch();
[...]
Channel channel = session.openChannel("shell");
OutputStream out = channel.getOutputStream();
out.write(asciiDecimalCode); // send characters
提前致谢。
【问题讨论】:
-
您在这里提到了 Java、Javascript 和 bash。你在做什么?
-
你为什么要向 bash 发送向上箭头? java 程序不是用户。
-
从 JavaScript 读取字符并使用 Java 将其发送到 bash。在上下文中是有道理的。
-
您拥有的这些代码不是 ASCII 代码,它们只是键盘的键映射代码,可能因制造商和本地化而异。
-
正确,我正在创建一个网络终端。这个程序是出于好奇比什么都重要。它是一个 Javascript 终端。 (我不明白负面的观点)。我编辑了主要问题并添加了我用来编写 bash 的代码。它只是通过使用 JSch 的 ChannelShell 将十进制值写入 OutputStream。