Php 无法在bash脚本中发送长命令

Php 无法在bash脚本中发送长命令,php,exec,expect,telnet,Php,Exec,Expect,Telnet,使用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" expe

使用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"
我正在php中使用exec来运行上面的脚本

<?php
exec(mybinfile , $returnvalue);
print_r($returnvalue);
我尝试减少命令中的字符数,如下例所示,这很好:

show running-config | include ip nat pool-gro

如果这是我在
print\r
中看到的输出,我会遇到问题吗?

除了发出
terminal length 0
命令外,您还可以发出
terminal width 511
命令以防止换行。这为我们解决了一个类似的问题

发件人:

要设置控制台会话期间显示信息的宽度,请在全局配置模式下使用terminal width命令。要禁用,请使用此命令的no形式

端子宽度

无端子宽度


另请参见服务器故障。

如果这是我在打印中看到的输出,我会遇到问题吗?
否。不会有问题,这就是expect的工作方式。字符串越长,它就会变得越混乱。它是删除设备、telnet本身以及expect如何从telnet捕获输出的组合。这不是关于“期望如何工作”和“胡言乱语”。当您“手动”远程登录到该设备时,某些文本是否显示为粗体或突出显示?
show running-config | include ip nat pool-gro