У меня есть команда из 54 символов, отправляемая по SSH на CLI-сервер Voltha с использованием child.sendline () [preprovision_olt -t ponsim_olt -H olt.voltha.svc: 50060] Я ожидаю, что смогу сопоставить ее так, чтобыЯ удаляю его из child.before в следующий раз. Однако я никогда не смогу найти совпадения, потому что в выходе child.before () в конце вставлен символ '\ r', который усекает вывод. Это то, что выводит child.before() выглядит так:
60reprovision_olt -t ponsim_olt -H olt.voltha.svc:500
После 500 вставляется символ '\ r', в результате чего следующие два символа перезаписывают первые два символа
Почему это так?
Это код, который у меня есть:
def send_command_to_voltha_cli(logDir, cmd, logFile):
vcliIp = extractIpAddr('vcli')
print (vcliIp)
print (cmd)
output = open(logDir + '/' + logFile, 'w')
child = pexpect.spawn('ssh -p 5022 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no voltha@' + vcliIp)
child.expect('[pP]assword:')
child.sendline('admin')
child.expect('\([0-9]mvoltha.*[0-9]m\) ')
bytes = child.sendline(cmd)
print (bytes)
child.expect_exact(cmd)
child.expect('\([0-9]mvoltha.*[0-9]m\) ')
response = child.before
print (response)
output.write(child.before)
output.close()
child.close()