WEB开发网
开发学院操作系统Linux/Unix 人人可用的 Rexx 阅读

人人可用的 Rexx

 2008-11-10 08:28:32 来源:WEB开发网   
核心提示: 清单 3. ls-1.rexx#!/usr/bin/rexx"ls | rxqueue"DO i=1 WHILE queued() = 0PARSE PULL lineSAY i || ") " || lineENDRexx 中有一些指令可以显式地指

清单 3. ls-1.rexx

#!/usr/bin/rexx
"ls | rxqueue"
DO i=1 WHILE queued() = 0
 PARSE PULL line
 SAY i || ") " || line
END

Rexx 中有一些指令可以显式地指定要操作的栈;但是其他指令操作是在您用 ADDRESS 指令配置的 环境 中进行。STDIN、STDOUT、STDERR、文件和内存内部数据栈都以统一而优雅的方式处理。上面我们用的是外部 rxqueue 实用程序,不过在 Rexx 内部我们同样可以重定向实用程序的输出。例如:

清单 4. ls-2.rexx

#!/usr/bin/rexx
ADDRESS SYSTEM ls WITH OUTPUT FIFO '' ERROR NORMAL
DO i=1 WHILE queued() = 0
 PARSE PULL line; SAY i || ") " || line; END

可能看起来 ADDRESS 命令只是获得 ls 实用程序的输出;但实际上它改变了后面外部调用的整体执行环境。这些例子运行于固定大小写/区分大小写 的文件系统上;在很多系统下,您将不得不保持“ls”的大小写去引用它。这个执行相同:

清单 5. ls-5.rexx

#!/usr/bin/rexx
ADDRESS SYSTEM WITH OUTPUT FIFO '' ERROR NORMAL
ls
DO i=1 WHILE queued()=0; PARSE PULL ln; SAY i||") "||ln; END

任意接下来的外部命令,如果他们是在默认的 SYSTEM 环境下运行,将把它们的输入定向到默认的 FIFO(先入先出,first-in-first-out)。您也可以改为输出到 LIFO(或者是命名的,或者是默认的)—— 不同之处是,FIFO 向栈的“底部”添加,而 LIFO 向“顶部”添加。指令 PUSH 和 QUEUE 对应的是对栈的 LIFO 和 FIFO 操作。指令 PULL 或者 PARSE PULL 从栈顶取得一个字符串。

上一页  1 2 3 4 5 6 7  下一页

Tags:人人 可用 Rexx

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接