SMS学习笔记4 SMS预处理器

SMS学习笔记4 SMS预处理器

作用:
读取并处理SMS文件,生成job文件、说明文件或用于XCDP/CDP编辑的文件,同时,还解析SMSCMD和SMSKILL中的命令。进行变量替换。
语法:
SMSMICRO SMS宏字符,默认为%
%include   包含_%SMSINCLUDE%/filename文件,若SMSCLUDE不存在,则用SMSHOME代替。用绝对目录不会展开,不要包含变量。
%include “filename”     包含
%SMSHOME%/%SUITE%/%FAMILY%/filename_ 文件
%include filename        包含sms所在目录的_filename_,通常在SMSHOME目录。不过最好用绝对目录。
%includenopp              与include语法相同,但不解释脚本文件
%comment … %end    到%end之间都是注释,不包含在输出文件中
%manual   …  %end     输出job文件,不包括这部分;输出manual文件,只包含这部分
%nopp … %end            不解析中间的部分
%smsmicro CHAR       改变SMSMICRO,不影响SMSFETCH和SMSCMD
详细说明:
4.1 SMSFILES
查找顺序,参见《SMS学习笔记3》
4.2 SMS 说明文档
放在%manual 和 %end之间,可以多次出现。manual中也可以用%include包含其他说明文档。
作业包和作业族的说明文档在相关目录下的单独文件中,例如sutie/family1中的family1.man文件,同样包含在%manual和%end中。
4.3 包含文件
最简单的包含文件:开头 %include <head.h> 结尾 %include <end.h>
SMSINCLUDE
4.4 SMSFILES和SMSINCLUDE的典型用法
在定义suite后紧接着声明需要的SMS变量,如SMSFILES、SMSINCLUDE和SMSHOME等

接着要确保发生错误要能被smsabort捕获,并用smsinit激活任务。下面是一个典型的头文件head.h

最后,要用smscomplete结束任务。典型的头文件tail.h

可能需要更多的头文件。
4.5 注释
注释不可嵌套,manual中也就无法包含注释。
4.6 停止预处理
多数是为了使用%符号。
4.7 SMSFETCH
执行用户命令来获取文件,例如从版本控制系统中获取文件。
没有现实的例子,以后再补充。
4.8 SMSMICRO
修改预定义宏标志,不影响SMSCMD和SMSKILL
4.9 sms文件怎样生成job文件
预处理器处理预处理命令。
task.sms

task.job