微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Net :: SSH :: Expect +转义双引号时JunOS不会返回输出

如何解决Net :: SSH :: Expect +转义双引号时JunOS不会返回输出

编辑1:删除了以下句子:“首先,“必须逃脱\"之类的,但是”,这是我的错误

编辑2:添加了$ cmd内容

编辑3:添加了可理解的代码示例

使用Perl的Net :: SSH :: Expect模块与Juniper网络设备(JunOS)通信时遇到问题。

对于某些命令,在JunOS中特别需要使用双引号。当我手动连接到设备时,将出现一个虚拟命令,例如:show something |。匹配“ this | that”可以正常工作。

通过Net :: SSH :: Expect模块使用此命令时,该命令根本不会返回输出

这是打开会话的方式

$session = Net::SSH::Expect->new(
                                host => $device->{ip},port => $port // 22,ssh_option => $options // '',user => $username,password => $password,raw_pty => 1,timeout => $session_timeout)

,并且使用“ $ session-> send($ cmd);”发送命令。 ,然后使用before()函数进行检索。

$session->send($cmd);
                
unless($session->waitfor($device->{promptSSH},$cmd_timeout)) {
    $logger->warn("$device->{hostname} ($device->{ip}) : SSH - Echec (Timeout) de la commande $cmd");
    $data->{'timeout'} = 1; # status flag
} 
@{$data->{'output'}} = $session->before();
return $data;

$ cmd将包含以下示例: 显示界面诊断光学|匹配“激光输出功率|激光接收器功率”

Output when we escape the double quotes

如果我不对双引号进行转义,我们会得到奇怪的输出结果

Output if we don't escape the double quotes

请注意,命令是从系统中的简单文本文件中读取的,以下是摘录

Extract of the file where the commands are read from

我一无所知,有人可以帮我吗?

欢呼

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?