Функция 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();
}
Пожалуйста, помогите мне в этом. Заранее спасибо.