第1章 主机脚本语言概述 1
1.1 CLIST语言简介 1
1.2 REXX语言简介 3
1.2.1 一个简单的REXX程序 3
1.2.2 REXX语言的一些不足 4
1.2.3 REXX语言的主要应用 4
1.3 USS的Shell简介 4
第2章 REXX简介 7
2.1 REXX的发展历史 7
2.2 各种版本的REXX 8
2.3 主机上的REXX 9
2.4 REXX特性 10
2.5 REXX的组成 12
2.6 第一个REXX程序 12
2.7 REXX执行 13
2.8 REXX调试 15
第3章 REXX语法 18
3.1 指令概览 18
3.1.1 指令的语法规则 18
3.1.2 指令的格式 19
3.1.3 指令类型 19
3.2 变量和表达式 20
3.2.1 变量的使用 20
3.2.2 表达式的使用 22
3.3 关键字指令 24
3.3.1 ADDRESS关键字 24
3.3.2 ARG关键字 25
3.3.3 SAY关键字 26
3.3.4 PROCEDURE关键字 26
3.3.5 CALL关键字 27
3.3.6 DROP关键字 28
3.3.7 INTERPRET关键字 28
3.3.8 NOP关键字 29
3.3.9 NUMERIC关键字 29
3.3.10 OPTIONS关键字 30
3.3.11 SIGNAL关键字 31
3.3.12 UPPER关键字 31
3.4 REXX命令 32
3.4.1 TSO/E REXX命令 32
3.4.2 TSO/E REXX命令的执行 32
3.4.3 常用的TSO/EREXX命令 33
3.5 程序控制流 39
3.5.1 条件控制语句 39
3.5.2 循环控制语句 41
3.5.3 中断语句 43
第4章 函数和子例程 45
4.1 函数的编写和调用 45
4.2 子例程的编写和调用 46
4.3 搜索顺序 47
4.4 参数传递 48
4.5 内置函数 51
4.5.1 算术函数 52
4.5.2 比较函数 52
4.5.3 转换函数 53
4.5.4 格式函数 54
4.5.5 字符串操作函数 55
4.5.6 其他内置函数 56
4.6 TSO/E外部函数 59
4.6.1 GETMSG函数 60
4.6.2 LISTDSI函数 61
4.6.3 MSG函数 63
4.6.4 MVSVAR函数 63
4.6.5 OUTTRAP函数 64
4.6.6 PROMPT函数 65
4.6.7 SETLANG函数 66
4.6.8 STORAGE函数 66
4.6.9 SYSCPUS函数 66
4.6.10 SYSDSN函数 67
4.6.11 SYSVAR函数 68
4.6.12 函数包 69
第5章 REXX数据处理 71
5.1 数据解析 71
5.1.1 常用解析指令 71
5.1.2 template list详解 73
5.2 数据栈操作 76
5.2.1 什么是数据栈 76
5.2.2 数据栈操作指令 76
5.3 文件读写 77
5.3.1 什么时候使用EXECIO命令 78
5.3.2 EXECIO命令简介 78
5.3.3 文件读取 79
5.3.4 文件写入 81
5.3.5 EXECIO的返回码 83
第6章 REXX与子系统的交互 84
6.1 执行宿主命令 84
6.2 REXX与TSO环境的交互 87
6.3 REXX与MVS控制台的交互 89
6.4 REXX与JES的交互 90
6.5 REXX与SDSF的交互 93
6.6 REXX与FTP的交互 96
6.7 REXX与IDCAMS的交互 100
6.8 REXX与TCP/IP的交互 103
6.9 REXX与USS的交互 105
6.10 REXX与CICS的交互 109
6.11 REXX与DB2的交互 113
6.12 REXX与其他编程语言 116
6.13 REXX与其他IBM产品 117
第7章 REXX与ISPF交互 118
7.1 ISPF和ISPF会话 118
7.1.1 什么是ISPF 118
7.1.2 ISPF会话 120
7.1.3 ISPF对话框定义 120
7.1.4 ISPF对话元素 120
7.2 ISPF服务调用 124
7.2.1 使用命令调用ISPF服务 124
7.2.2 传递Dialog变量作为参数 126
7.2.3 ISPF编辑器 127
7.2.4 调用ISPF服务的返回值 127
7.3 ISPF服务描述 128
7.3.1 ISPF服务分类 128
7.3.2 几个常用的ISPF服务 132
7.4 ISPF对话设计架构 136
7.4.1 控制流和数据流 136
7.4.2 对话组织方式 136
7.4.3 什么是SELECT服务 137
7.4.4 如何调用SELECT服务 138
7.4.5 ISPSTART命令启动ISPF对话 139
7.4.6 ISPF对话框终止 140
7.5 ISPF会话案例 141
7.5.1 ISPF对话程序案例 141
7.5.2 客户化ISPF主面板 152
7.6 REXX与ISPF编辑宏 158
7.6.1 编辑宏命令 158
7.6.2 编辑宏举例 159
第8章 REXX程序的执行 161
8.1 TSO/E环境下REXX程序调用 161
8.2 非TSO/E环境下REXX程序调用 165
8.3 REXX程序的编译 169
第9章 REXX程序的调试 173
9.1 异常情况的跟踪 173
9.1.1 事件分类 173
9.1.2 事件处理 175
9.1.3 事件信息 175
9.2 诊断函数的使用 176
9.3 程序异常处理示例 178
9.4 使用Trace指令 179
9.4.1 字母参数 179
9.4.2 前缀参数 181
9.4.3 数字参数 182
9.4.4 TRACE指令输出格式 183
9.5 中断程序的执行 184
9.6 交互式调试工具的使用 185
9.6.1 TRACE?命令 186
9.6.2 EXECUTIL TS命令 188
9.7 IRXIC例程 189
第10章 REXX综合案例 191
10.1 综合案例一 191
10.2 综合案例二 193
10.3 综合案例三 196
第11章 REXX实验 198
11.1 预备实验 198
11.2 REXX基础实验一 200
11.3 REXX基础实验二 202
11.4 REXX基础实验三 204
11.5 REXX函数与子例程调用 204
11.6 数据解析实验 205
11.7 REXX错误处理与调试机制实验 206
11.8 执行宿主命令实验 207
11.9 REXX构建并提交JCL作业 208
11.10 REXX调用ISPF服务实验 208
11.11 ISPF编辑宏(EditMacro)实验 209
11.12 实验参考答案 210