爱立信脚本ops开发经验

上传人:第*** 文档编号:32763483 上传时间:2018-02-12 格式:DOC 页数:13 大小:132KB
返回 下载 相关 举报
爱立信脚本ops开发经验_第1页
第1页 / 共13页
爱立信脚本ops开发经验_第2页
第2页 / 共13页
爱立信脚本ops开发经验_第3页
第3页 / 共13页
爱立信脚本ops开发经验_第4页
第4页 / 共13页
爱立信脚本ops开发经验_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《爱立信脚本ops开发经验》由会员分享,可在线阅读,更多相关《爱立信脚本ops开发经验(13页珍藏版)》请在金锄头文库上搜索。

1、1OPS 脚本经验谈胡仕国 13825769897摘要OPS 是进行爱立信交换机维护的强大工具,本文从基本语法和重要的函数方面介绍OPS 基本使用和编写方法,由于 OPS 的低级编程语言这一特点导致编程中存在编程陷阱,本文列举部分编程陷阱,以及编程中的一些小技巧。一、OPS 脚本概述OPS( Operarions Procedure Support)是一个使用 OPS 脚本语言进行命令文件编辑、调试和执行的环境,OPS 脚本是爱立信交换机进行系统管理、维护升级的一大利器,其运行于 UNIX 系统中,属于过程化编程语言,对于爱立信交换机维护人员来说其要熟练地掌握必需注意一下 2 点:1、熟悉 O

2、PS 脚本语言的语法,OPS 相对来说是一个低级语言,没有高级的编译器,对语法错误检查很简单,如对隐含的变量设置,跳转错误等均无法检测出来,这是 OPS脚本语言初学者一大障碍。推荐大家使用 OPS 自带帮助文件或其翻译版本OPS 帮助文档或叫OPS 十日谈。2、熟悉用 Command Files 完成工作任务,需要对指令打印结果的格式以及内容进行准确的把握,这样才能正确的提取有用信息。下文将介绍 OPS 基本使用、语法、重要函数、编程陷阱、编程技巧。二、OPS 界面基本使用OPS 提供一个编辑、调试和运行使用 OPS 脚本语言的 Command File 的环境, 主窗口显示 Command

3、File 内容方框和 Command File 执行方框。Command File 可通过文件浏览器 Load 入到主窗口,也可以创建一个新文件,一个 Session 中可以进行多个OPS 运行,但建议不要超过 5 个,过多的 OPS 进程会加重 OSS 系统负荷负担。主窗口可在三种模式下工作: Edit、Run、Output.In Edit mode , 创建新 CommandFile 或编辑 CommandFile。窗口提供编辑、语法检查等功能。2In Run mode ,可以进行 Command file 的执行、人工停止、step by step 执行等。In Output mode,

4、显示脚本执行进展。图表 1 OPS 程序界面基本操作步骤1. 启动 Operations Procedure Support,OPS 启动后出现在“Edit mode”,一个未命名的文件自动建立在当前工作目录。2. 另存(Save as )文件 3. 在 Command File Area 编写脚本 4. “Save”保存脚本文件5. 转换至“Run mode”并“Run”文件 ,其运行结果显示在“Command File Output 6. 如果出错, “ ”符号指示当前命令行不能执行。 7. 转换至“Edit mode”,并修改错误的命令行 8. 保持(Save )或检查语法并保持( Ch

5、eck Syntax and Save)9. 转换至“Run mode”进行脚本执行。使用小建议31、在 In Edit mode 下进行 CommandFile 编写建议初学者开启着色功能,系统自动对文件不同字符进行着色,如蓝色为 OPS 命令或功能;亮绿色为标签(Labels )、黑色为字符串(String)、粉红为变量(Variables),如果格式错误显示红色可以帮助进行错误检查,在准备切换到 In Run mode 进行程序执行之前建议对其进行语法检查图表 2 OPS 选项设置界面2、在 In Run mode 下可以根据自己需要进行脚本执行,其中对网元核查很重要,在使用时要对脚本需

6、要运行的网元进行确认,否则可能造成重大后果。图表 3 网元选择界面OPS 窗口界面提供一套比较丰富的功能,由于本文篇幅限制,具体功能使用请读者自行研究。三、OPS 语法和重要函数OPS 基本语法OPS 脚本以文本文件形式撰写,一个 OPS 脚本可包含人机语言(MML)、OPS 脚本命令, MML 不需要字符标示,OPS 脚本命令需要字符进行标示,而以“ ”、“/”、 “!”开头的为注释说明,只显示不执行, 如下面 2 种标示方式: 变量由命令设定,如:INPUT, SET, READ,变量以下列格式定义:4Var = Var_char其中下列符号除外: = + - * / ( ) , ,而且变

7、量名不能以数字、($)或 (#) 开头,如果变量已被赋值,变量内容可被访问,变量字符不能超过 1000 个。变量替代可用于替换变量名或变量名的部分,变量替代以 符号表示,在一个脚本行中可包含多个变量替代,变量替代可嵌套,如 2 次嵌套形式:abc。以下情况将不发生替代:1. 如果需替代的变量在执行时未被定义,替代不发生。 2. LABEL 命令不允许替代 ,跳跃不成功,如LABEL MYLABEL为不合法表达式在脚本中在IF-THEN 或IFERROR THEN 条件命令中可以使用如下的、= 、+ 、AND 、OR 等符号运算。OPS 重要函数OPS 函数在 OPS 编程过程中是十分重要,下面

8、介绍部分常用重要的函数:CHECK(Exp ) 错误检查有效与否,命令格式CHECK(“ON”)标示在脚本执行过程中检查到错误,脚本停止执行,CHECK(“OFF”) 标示对执行过程中的错误不予处理,特别是在处理MML 指令出错时十分有用,通过CHECK(“OFF”) 对处理错误进行检查处理。IF-THEN、ELSE 、ENDIF、BREAK分别为:条件执行,IF-THEN 条件不满足时的执行,指明 IF-THEN 命令的结尾,中断一个正在进行的FOR-TO 循环。GOTO、GOSUBGOTO:跳跃至当前 Command File 的标签指向,GOSUB:跳跃至子程序标签,必需和RETURN

9、同时使用,在子程序执行完毕时跳转回主程序,执行下一行指令。二者不同在于 GOTO 无需返回,GOSUB 必需返回主程序。INCLUDE执行另外一个包含 Command File 文件,也可以是 SHELL 文件。LABEL 5指明 GOTO 或 GOSUB 命令涉及的位置,子程序和跳跃标签必需以LABEL 标明,同时必需保证LABEL 的唯一性,否则出现编译错误。FOR-TO标注一个 for-loop 结构的起始,和NEXT 同时使用,NEXT 标注一个 for-loop 结构的结尾,每次循环先判断循环条件,然后执行循环语句。CONNECT、DISCONNECT指令分别为连接到指定网元、断开连

10、接,通过 CONNECT 选择脚本执行的网元,其中网元名必需为大写。RESTART 、QUIT 、STOP分别为跳跃至当前 Command File 的开始位置、退出 Command File 执行、STOP 停止一个 command file 的执行。FUNBUSY格式为FUNBUSY(Exp1 , Exp2 ),说明当遭遇“FUNCTION BUSY”时尝试执行 MML 命令的次数,Exp1 :当执行 MML 命令后遭遇 FUNCTION BUSY 响应后的重试次数。 Exp2 :重试间隔,以秒为单位(可选)ORDERED指令形式ORDERED (”ON”) 、ORDERED(”OFF”

11、),控制延时响应的接收,在某些指令无需等待响应或响应时间很长时可以使用,如 SYBUP 等。ERASE删除一个指定文件。OPENREAD 、READOPENREAD:打开一个阅读的指定文件。READ :阅读指令 OPENREAD”打开的文件中的一行,OPENREAD 、READ 和 FOR-TO 联合可以实现变量获取或对现有文本逐行处理。WRITE在一个指定文件或指定行中写入参数数值。CONCAT()连接指定参数(加入一个字符串)。EXECUTE6执行一个 UNIX 命令并返回 CommandFile。SET、FLUSHVAR分别为设定一个变量数值和删除指定变量。REPLY()、COPY()、

12、TRIM()REPLY():返回一个特定响应行的所有文本,COPY():复制一个文本字符串的指定部分TRIM():删除指定字符串的前后空格、标点符号、换行符号。此 3 个函数常联合起来使用,用于获取指定的信息,如:SET ABC=TRIM(COPY(REPLY(A),N,M)。SCAN()扫描最近 MML 或“ MARK”命令执行后响应缓冲中的特定字符串,SCAN 在定位行数中十分有用,可以通过 SACN()确定目标信息的行号。LOG、CLOSE指定信息记录文件,关闭当前打开的 LogFile。COMMENT在输出区域或注释窗口显示指定的 CommandFile 文本字符串。SEND发送任意字

13、符至外部系统,在 APG 模式下可以使用 SEND 指令方便的执行 MML 指令,无需回到 MML 模式。CHDIR、MKDIR、RMDIRCHDIR 将当前目录改为指定目录,MKDIR 创建一个新目录, RMDIR 删除一个指定目录。LENGTH()、LOWCASE()、UPCASE()、POS()LENGTH()确定一个指定文本字符串的长度;LOWCASE()UPCASE()返回指定文本字符串的小写,返回指定文本字符串的大写;POS()返回一个指定字符串在另一个指定字符串的起始位置。DEC、INC分别为指定变量数据减 1,指定变量数据加 1。DELAY、DELAYSEC分别为指定分钟数中断

14、 CommandFile 执行,指定秒钟数中断 CommandFile 执行。GETDATE()7返回系统日期、时间、星期几具体命令的使用格式请参看OPS 帮助文档,文档中有相关说明和实例。四、OPS 编程过程中的陷阱OPS 是过程化、运行于 UNIX 系统的脚本语言,对于初学者来说,在编程过程中可能存在一些误解和不适应,OPS 和 WIN 系统下的高级语言有比较大的不同,在编程过程中存在一些陷阱,可能导致程序无法顺利执行。下面结合作者的编程经验总结可能碰到的语言编译陷阱。1、 路径设置OPS 运行于 UNIX 中,UNIX 为多用户系统,系统对文件的读写权限严格控制,只有正确的设置文件路径,

15、才能顺利的实现文件的读写, 部分初学者往往拿到一个脚本之后忽视这一点,没有检查修改相关文件路径,脚本在运行过程中可能会读写其他用户的文件,导致程序无法运行,所以在借鉴和使用他人程序时一定要注意是否存在路径问题,建议在编写脚本时使用自适应路径设置功能,增加脚本的移植性,这一点在下面将具体介绍。2、 变量定义和使用OPS 脚本中必不可少的是变量的使用,通过 SET 和 READ 获取变量,具体形式为如:SET SNTi=UPET-*变量名和赋值之间为“=“,变量的定义就必需涉及到变量的引用,特别是变量的嵌套式很容易出错,如:NTCOP:SNT=SNTi;涉及到 2 次嵌套,需小心。过多无用的变量,

16、不但增加系统的负担,而且还可能和其他变量冲突,FLUSHVAR 删除无用变量,可以优化程序性能,这一点在进行较大程序时必需十分重视。3、 指令单线程性OPS 是个简单的低级语言,指令的执行是单线程的,即脚本指令是互相排除,如 SCAN、OPEN 等指令不能同时在主程序和子程序中使用 ,否则会导致 SCAN、OPEN 的错乱,无法从子程序中返回。如实例:假设主程序使用 NTCOP:SNT=ALL;获取到某一行的 DEV,随后跳跃到子程序进行 EXDRP:DEV=DEV;获取 RP 信息,然后返回主程序8继续 SCAN 下一行的 DEV 时,在高级语言中可以简单实现,但在 OPS 中就无法实现类似的跳转,这是 OPS 低级语言的编译环境决定的,也是很容易犯错误,而且不易发现的。4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号