更改在 z/OS USS 中运行的 REXX exec 中的目录?
Posted
技术标签:
【中文标题】更改在 z/OS USS 中运行的 REXX exec 中的目录?【英文标题】:Change directory in REXX exec running in z/OS USS? 【发布时间】:2017-04-04 13:36:07 【问题描述】:我在 TSO 下的 USS shell 中,我有这个 exec(名为 tryit):
/* rexx */
"cd /differentdir"
"pwd"
结果如下:
> pwd
/origdir
> tryit
/origdir
换句话说,cd 命令的效果似乎只在命令本身的持续时间内持续。 REXX exec 有没有办法以一种可以在以下命令中识别的方式更改工作目录?
【问题讨论】:
查看 REXX 系统调用环境。您所做的是临时的,因为默认情况下,这些命令中的每一个本质上都是带有命令字符串参数的单独 ADDRESS 语句。 @zarchasmpgmr 这正是我需要的提示。谢谢。 【参考方案1】:对于在 USS shell 下运行的 REXX 执行程序,默认寻址环境是 SH。来自 Using REXX and z/OS UNIX System Services 手册:
请注意,内置 shell 命令在 shell 进程中运行,而不是在您的 REXX 进程中运行,并且无法更改 REXX 环境。例如,地址 sh 'cd /' 不会改变你的 REXX 进程的当前目录。
要对当前工作目录进行持久更改,请发出address syscall chdir
命令。来自同一手册:
如果您使用 chdir 更改正在运行的 REXX 程序中的目录 TSO/E 会话时,目录通常会重置为您的主目录 REXX 程序结束。
【讨论】:
以上是关于更改在 z/OS USS 中运行的 REXX exec 中的目录?的主要内容,如果未能解决你的问题,请参考以下文章