Функция expectit sendLine удаляет пробел и символ из командной строки

Я использую expectit 0.9.0 и java version 1.8.0_201, expect.sendLine() отлично работает с командами, состоящими из одного слова, но когда дело доходит до команды с несколькими словами, он ведет себя странно, иногда удаляет пробел, а иногда удаляет любой отдельный символ из командной строки.

Введенная команда: esxcli network ip interface ipv4 get

Поведение:`

  • esxcli network ip terface ipv4 get
  • esxcli network ipinterface ipv4 get

Это поведение не является постоянным, иногда оно работает отлично. Ниже мой код -

try {           
            String username="root";
            String password="root_password";
            
            Process process = Runtime.getRuntime()
                    .exec("ipmitool -I lanplus -H <myipaddress> -U <admin_username> -P <admin_pasword> sol activate");
            Expect expect = new ExpectBuilder()
                    .withInputs(process.getInputStream())
                    .withOutput(process.getOutputStream())
                    .withTimeout(50, TimeUnit.SECONDS)
                    .withExceptionOnFailure()
                    .build();
            
            try {
                expect.sendLine();
                expect.sendLine("esxcli network ip interface ipv4 get");
                expect.sendLine("ENDCOMMAND");              
                System.out.println(expect.expect(contains("ENDCOMMAND")).getBefore());  
                            
            }catch (Exception e) {
                e.printStackTrace();
            }

Пожалуйста, помогите мне в этом. Заранее спасибо.

0 ответов

Другие вопросы по тегам