Bash 配置验证 ssh到通过用户输入提供的IP 注入show running config命令 搜索命令的输出并查找特定参数,如端口、QoS、VTY线路、SMTP设置、IP帮助程序等 仅当预定义参数未就位时输出

Bash 配置验证 ssh到通过用户输入提供的IP 注入show running config命令 搜索命令的输出并查找特定参数,如端口、QoS、VTY线路、SMTP设置、IP帮助程序等 仅当预定义参数未就位时输出,bash,perl,Bash,Perl,如果我将ssh运行的输出存储在一个变量中,是否有一种方法可以用来解析它,然后使用无休止的If、elsif和else语句?那看起来怎么样 它可以是PythonBash或Perl,对我来说真的不重要,但我不知道如何构造它,然后填补空白并扩展脚本 这就是我想象的起点 use Net::SSH2 use File::Slurp; print "\nEnter command list filename: "; my $commandlist = <STDIN>; chomp($com

如果我将
ssh
运行的输出存储在一个变量中,是否有一种方法可以用来解析它,然后使用无休止的
If
elsif
else
语句?那看起来怎么样

它可以是PythonBash或Perl,对我来说真的不重要,但我不知道如何构造它,然后填补空白并扩展脚本

这就是我想象的起点

use Net::SSH2 
use File::Slurp;

print "\nEnter command list filename: "; 
my $commandlist = <STDIN>; 
chomp($commandlist);

my @commandfile = read_file($commandlist, chomp => 1); 
my $commandsize = @commandfile; 
使用Net::SSH2
使用File::Slurp;
打印“\n输入命令列表文件名:”;
我的$commandlist=;
chomp($commandlist);
my@commandfile=read_文件($commandlist,chomp=>1);
我的$commandsize=@commandfile;

如何将命令的输出存储在变量或临时文件中,并使用条件对其进行解析

这是一个非常广泛的问题,不清楚到底是什么让你困惑

文件 和 清楚地描述如何打开通道、向其发送命令和接收响应

您询问如何将命令的结果存储在变量中,但如果执行其他操作,则会非常尴尬。同样,文档清楚地描述了这一点


我建议您尝试编写一些工作代码并进行实验。当您有特定问题时,您将更容易获得帮助

命令列表文件的用途是什么?为每个类别提供一组命令-路由器检查、交换机检查、WLC检查等。这是我的第一个想法-使用外部命令列表。
File::Slurp
有问题,顺便说一句。备选方案包括(或者在本例中只是像正常情况一样一次读取一行文件)有如何捕获程序运行输出的示例。“我如何[…]解析带条件的[文本]”非常模糊。解析器理论已有几十年的研究。在没有具体问题需要解决的情况下,我投票以“范围太广”结束这一问题。