"Анри Бертьен. Стандартный набор операторов языка REXX (для OS/2) " - читать интересную книгу автора

принимаемой по умолчанию).
Оператор ADDRESS без операндов восстановит предшествующее имя среды,
использовавшейся по умолчанию. Повторно выданный оператор ADDRESS без
операндов снова установит значение, существовавшее до выдачи предыдущего
оператора.

/* Пример, иллюстрирующий применение оператора ADDRESS. Подобная ситуация
может встретиться, например, в макрокоманде текстового редактора XEDIT в CMS
или KEDIT в PC/DOS - MS/DOS (имя среды, принимаемое по умолчанию, будет
'XEDIT' или 'KEDIT' соответственно; кроме того, доступна, естественно, и
среда 'COMMAND' - среда команд операционной системы). */

Arg fileid; /* Переменная FILEID теперь содержит имя файла, указанное в
параметрах при вызове этой REXX-программы, предназначенной для использования
в качестве макрокоманды редактора. */

If fileid='',
Then do;
'MSG Имя файла не указано...'; /* Выполняем команду 'MSG'
редактора. */
Exit 1;
End;
Address command; /* Изменим среду, принимаемую по умолчанию,
на 'COMMAND'. */
'ERASE' fileid; /* Выполним команду основной системы - уничтожим
указанный файл. */
If rc^=0 then do
Address; /* Восстановим предыдущую среду,
принимаемую по умолчанию, выдав оператор ADDRESS
без параметров. */
'MSG Файл 'fileid' удалить не удалось, rc='rc'.';
/* Выполним команду 'MSG' редактора. */
Exit 1;
End;
Else do;
Address XEDIT 'MSG Файл 'fileid' удалён.';
/* Address KEDIT - для PC, Address XEDIT - для CMS. */
Exit 0;
End;

Следует отметить, что, хотя выдача оператора ADDRESS без операндов и
изменяет имя текущей среды на предшествующее, всё же при реальном
программировании, особенно - в сложных программах, работающих с двумя, тремя
(или более) средами применение такого приёма нежелательно, так как далеко не
всегда Вы можете быть уверены, что установлено именно то имя среды, которое
Вам нужно. Более 'стилистически чистым' и, следовательно, более
'безопасным', является следующий вариант:

Arg fileid; /* Переменная FILEID теперь содержит имя файла,
указанное в параметрах при вызове макрокоманды. */