Не удается отправить длинную команду в bash Script Expect

У меня проблемы с отправкой длинных команд с моим ожидаемым скриптом. Я использую Telnet для доступа к маршрутизатору:

#! /usr/bin/expect -f
#
#

spawn telnet 192.168.0.5

expect {
"login:"{
send "admin\r"expect "Password:"send "admin\r"
expect ">"send "enable\r"expect "Password:"send "\r"
# My Command
expect "#"send "terminal length 0\r"expect "#"send "show running-config | include ip nat pool-group\r"}
}

expect "#"send "exit\r"

Я использую exec в php для запуска скрипта выше

<?php
exec(mybinfile , $returnvalue);
print_r($returnvalue);

Когда я проверяю вывод, похоже, что отправлена ​​неправильная команда. Но все же, это работает. Почему он выводит это так?

Результат выглядит так:

[14] => R1#terminal length 0
[15] => R1#show running-config | include ip nat pool-gro$ng-config | include ip nat pool-grou          $ng-config | include ip nat pool-group

Я попытался уменьшить количество символов в моей команде, как в примере ниже, и это нормально:

show running-config | include ip nat pool-gro

Буду ли я сталкиваться с проблемами, если это вывод, который я вижу в print_r?

3

Решение

В дополнение к выдаче terminal length 0 команда, вы также можете выдать terminal width 511 Команда для предотвращения переноса строк. Это решило подобную проблему для нас.

От документация:

Чтобы задать ширину отображения информации во время сеансов консоли, используйте ширина терминала Команда в режиме глобальной конфигурации. Чтобы отключить, используйте нет Форма этой команды.

ширина терминала столбцы

нет терминальной ширины столбцы

Смотрите также этот вопрос на ServerFault.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]