Изменить каталог в REXX exec, работающем в z/OS USS?

Я в оболочке USS под TSO, и у меня есть этот exec (названный tryit):

/* rexx */
"cd /differentdir"
"pwd"

Вот результат:

> pwd
/origdir
> tryit
/origdir

Другими словами, эффекты команды cd, по- видимому, сохраняются только на протяжении самой команды. Есть ли способ для REXX exec изменить рабочий каталог таким образом, который будет распознаваться в следующих командах?

1 ответ

Решение

Для REXX execs, работающих под оболочкой USS, средой адресации по умолчанию является SH. Из руководства по использованию REXX и z/OS UNIX System Services:

Обратите внимание, что встроенные команды оболочки выполняются в процессе оболочки, а не в вашем процессе REXX, и не могут изменять среду REXX. Например, адрес sh 'cd /' не изменит текущий каталог вашего процесса REXX.

Чтобы внести постоянные изменения в текущий рабочий каталог, введите address syscall chdir команда. Из того же руководства:

Если вы используете chdir для изменения каталога в программе REXX, которая выполняется в сеансе TSO/E, каталог обычно сбрасывается в ваш домашний каталог после завершения программы REXX.

Другие вопросы по тегам