命令行步进式片断匹配方法

文档序号:7880939阅读:298来源:国知局
专利名称:命令行步进式片断匹配方法
技术领域
本发明属于计算机网络通信领域,具体涉及用户通过终端telnet或console等各种方式进入命令行界面,可以对网络设备进行配置查询、管理。
背景技术
命令行主要运用于网络设备,比如交换机、路由器等设备的软件系统,它的主要功能是对系统进行配置,查询,启动和关闭任务。
命令行管理着成千上万条注册命令,而且还要对用户输入的命令进行识别、匹配、运行。另外,随着注册命令的增加,相似的命令也在增多。因此,如何对众多的命令进行管理和查询匹配、并且使系统既容易增加注册命令同时又不影响系统的稳定和性能,则是一个长期存在的难题。

发明内容
本发明克服上述命令行管理和查询匹配的难题,提供一种命令行步进式片断匹配方法,当系统在不断的完善、升级时,用户可以始终熟练的使用命令行对设备进行管理配置。
本发明的技术内容一种命令行步进式片断匹配方法,包括(1)用户输入命令字符串片断化;(2)命令行通过拷贝动态指针数组将当前节点下的所有命令索引拷贝;(3)分别从第一个命令片断开始,将前n(n从1开始)个连续片断组成一个子命令,将子命令逐一分别和数组的所有注册命令进行匹配;每次匹配后n的值递增1;(4)在匹配过程中,当前的子命令明确匹配后,才对下一个子命令进行匹配,即执行第(3)步。
在匹配过程中,如果某个子命令和数组所有的注册命令不匹配,或和多个注册命令发生模糊匹配,立刻中断匹配,向用户输出错误提示信息。
所述步骤(3)进一步包括在每一次匹配过程中,将不匹配的命令从数组中去掉。
所述步骤(3)进一步包括当子命令与多个注册命令相匹配时,命令行比较任两个注册命令的优先级,将级别较低的命令从数组中去掉,选择出最优匹配的注册命令集。
步骤(3)中在进行匹配时,将子命令和注册命令逐个字段进行比较。
本发明的技术效果本发明步进式片断匹配方法,通过对用户输入的命令逐个片断逐个片断的进行匹配,使得即使系统的注册命令不断增加,用户也不会感觉到不同,仍然可以简单易懂的使用命令行进行系统配置、查询。用户只需记住一个非常简单的规则只有当前片断明确匹配后,才会匹配下一个片断,由于对用户输入的命令是逐个片断逐个片断的进行匹配,用户匹配规则简单,因此,用户只需根据联机帮助就可以简单、方便的使用命令行。


图1是本发明命令行步进式片断匹配方法的流程图;图2是本发明的注册命令整体结构示意图;图3是本发明的每个注册命令的结构示意图;图4是本发明具体实施例中的注册命令的结构示意图。
具体实施例方式
参考图1,本发明命令行步进式片断匹配方法是首先将用户输入的命令字符串进行片断化,分别从第一个命令片断开始,将前n(n从1开始)个连续片断组成一个子命令。其次,通过拷贝动态指针数组将当前节点下的所有命令索引拷贝下来。当前节点指命令行当前提示符所对应内部数据结构的位置,类似于DOS提示符对应文件系统的目录,每一个节点(Com_node)下都安装着一系列的命令,可通过list命令来查看当前节点下安装的所有命令。最后,参考图2、图3,将子命令逐一分别和数组的所有注册命令进行匹配,即步进式匹配,在匹配过程中,只有当前的子命令明确匹配后,才对下一个子命令进行匹配,每次匹配后n的值递增1,如果某个子命令和数组所有的注册命令不匹配,或和多个注册命令发生模糊匹配,立刻中断匹配过程,并向用户输出错误提示信息。参考图4,在cmd_element右边的数据结构为此注册命令的命令字段分解;cmd_element下边为注册命令内的大括号{}的位置标志,该注册命令show[ip|tcp]{use statistics}*1。在进行匹配时,将子命令和注册命令逐个字段进行比较,在匹配过程的每一步中,将不匹配或不是最优匹配的命令从动态指针数组中去掉,下一个命令片断的匹配解析都是和动态指针数组里剩下的命令进行匹配,并将不合适的命令也丢弃,避免了命令片断匹配的重复性,使数组中拥有最终需要的最优匹配命令,在每一个命令片断比较之后,对于已经匹配的所有命令集中,还需要根据匹配优先级来取舍命令集。通过如下理论阐述通过舍弃低优先级的命令集合,留下匹配优先级别最高的命令集。
理论基础集合A(A1,A2,A3...)、B(B1,B2,B3...);如果集合A中所有元素属性相同,相互之间没有冲突,集合B也是一样。只要任两个元素A1和B1有冲突,那么A中的任一个元素An都会和B1有冲突。
在命令行中的应用如下假设用户输入的某个命令片断匹配了三类命令集,优先级从低到高分别为A(A1,A2,A3...)、B(B1,B2,B3...)、C(C1,C2,C3...),任意取出两个命令进行比较,将有如下情况(1)命令为B1、B2,当前命令为B1;因为优先级一样,都保留。并记录下这两个命令并且当前命令变为B2。
(2)命令为B1、A1,当前命令为B1;由于A1级别低,那么去掉A1,继续取下一个命令,假设为An那么仍然将An去掉。
(3)如果命令为B1、C1,当前命令为B1;那么将保留C1为当前命令,而把B1以及前面的属于B集合的其他命令去掉。继续取下一个命令重复上述情况。
按照本发明的技术方案,选择一具体实施例说明本发明的
具体实施例方式1.在config节点下用户输入命令show ip nat statistics回车;2.命令行会将config节点所对应的Cmd_node下的vector数组拷贝一份下来赋值给指针cmd_cl_vector;此数组所包含的命令集合是当前要开始进行比较选择的所有注册命令了;3.取用户输入的第一个命令片断段show作为子命令,和指针cmd_cl_vector所指的数组(以后简称为cmd_cl_vector数组)的所有注册命令进行比较,将所有不匹配的注册命令和所有不是最优匹配的注册命令从cmd_cl_vector数组中删掉,剩下的是最优匹配了show子命令的所有注册命令了。
4.取用户输入的前两个命令片断show ip作为子命令,和cmd_cl_vector数组的所有注册命令进行比较。同样,将所有不匹配的注册命令和所有不是最优匹配的注册命令从cmd_cl_vector数组中删掉,剩下的就是最优匹配了show ip子命令的所有注册命令了。
5.依此类推一直匹配到show ip nat statistics,返回匹配结果。
6.在匹配过程中,如果某个子命令和cmd_cl_vector数组所有的注册命令不匹配,或和多个注册命令发生模糊匹配,立刻中断匹配过程,并向用户输出错误提示信息。
权利要求
1.一种命令行步进式片断匹配方法,包括(1)用户输入命令字符串片断化;(2)命令行通过拷贝动态指针数组将当前节点下的所有命令索引拷贝;(3)分别从第一个命令片断开始,将前n(n从1开始)个连续片断组成一个子命令,将子命令逐一分别和数组的所有注册命令进行匹配,每次匹配后n的值递增1;(4)在匹配过程中,只有当前子命令明确匹配后,才对下一个子命令进行匹配,即执行第(3)步。
2.如权利要求1所述的命令行步进式片断匹配方法,其特征在于在匹配过程中,如果某个子命令和数组所有的注册命令不匹配,或和多个注册命令发生模糊匹配,立刻中断匹配,向用户输出错误提示信息。
3.如权利要求1所述的命令行步进式片断匹配方法,其特征在于步骤(3)进一步包括在每一次匹配过程中,将不匹配或不是最优匹配的命令从数组中去掉。
4.如权利要求1或3所述的命令行步进式片断匹配方法,其特征在于所述步骤(3)进一步包括当子命令与多个注册命令相匹配时,命令行比较任两个注册命令的优先级,将级别较低的命令从数组中去掉,选择出最优匹配的注册命令集。
5.如权利要求1所述的命令行步进式片断匹配方法,其特征在于步骤(3)中在进行匹配时,将子命令和注册命令逐个字段进行比较。
全文摘要
本发明提供了一种命令行步进式片断匹配方法,属于计算机网络通信领域。该方法将用户输入命令字符串进行片断化,分别从第一个命令片断开始,将前n个连续片断组成一个子命令,命令行通过拷贝动态指针数组将当前节点下的所有命令索引拷贝,将子命令逐一分别和数组的所有注册命令进行匹配,每次匹配后n的值递增1,在匹配过程中,当前的子命令明确匹配后,才对下一个子命令进行匹配。由于对用户输入的命令是逐个片断逐个片断的进行匹配,用户匹配规则简单,因此,用户只需根据联机帮助就可以简单、方便的使用命令行。
文档编号H04Q3/545GK1543128SQ200310103550
公开日2004年11月3日 申请日期2003年11月7日 优先权日2003年11月7日
发明者张乐, 林程勇, 刘建勋, 张 乐 申请人:港湾网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1