【问题标题】:How to send escape keys (ctrl+shift+6) in ExpectIt API如何在 ExpectIt API 中发送转义键 (ctrl+shift+6)
【发布时间】:2017-03-29 03:13:57
【问题描述】:

我是 ExpectIt API 的新手。我可以执行命令并得到响应,但我无法通过提供转义键(ctrl+shift+6)来停止运行命令。

如何通过 ExpectIt API 向终端发送转义键以停止运行命令?

例子

R1#ping ip 192.168.1.1
    Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
.... <div style="color:red"><b>I pressed escapse character here</b></div>
Success rate is 0 percent (0/4)
R1#

【问题讨论】:

    标签: java expect telnet jsch expectit


    【解决方案1】:

    我通过发送两次控制键来停止路由器上的运行命令,如下所示。

    char ctrlKey = (char) Integer.parseInt("1E", 16);
    expect.send(ctrlKey);
    Thread.sleep(1000);
    expect.send(ctrlKey);
    

    我已经获取了expectIt的来源,更改了以下类。

    ExpectImpl.java 
     //private final OutputStream output; 
     private final Writer output; // use Writer instead of using OutputStream
    

    【讨论】:

    • 你试过Expect#sendBytes方法了吗?它应该以相同的方式工作:expect.sendBytes(new byte[] { 30 }) (30 decimal = 1E hex)。
    • 它也应该通过输出流工作。无需使用 Writer。你能显示不工作的确切代码吗?如果有的话,我想调查根本原因并对 ExpectIt 进行更改。
    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多