我正在编写一个从Javascript读取输入的程序,并将这些读数发送给bash。
我可以成功地执行许多操作,例如" A-Z"字母,TAB,CTRL + C等等。但我意识到我无法正确发送给ARROW UP。
如果我从Javascript中读取ascii代码,我会按照Binding arrow keys in JS/jQuery的说明得到以下内容
37 - left
38 - up
39 - right
40 - down
然而,当我向终端发送箭头,十进制密钥代码38时,我写了一个&符号(如下面的ascii表http://www.asciitable.com/)
所以,我的问题是:我必须从Java发送什么代码才能告诉bash" arrow key up" ?
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
提前致谢。
答案 0 :(得分:7)
"箭头向上的转义序列"是"\u001b[A"
。 \u001b
是ESC (Escape)的代码。
这意味着当您在JavaScript中使用单个密钥代码时,您需要向BASH写入3个字节以实现所需的效果。
您可以通过输入 Ctrl + V Up 自行查看。
Ctrl + V 告诉bash:"不要尝试解释下一个输入;只需逐字插入"。
相关: