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

ADDRESS - передача команды (подкоманды) в указанную среду, установка
значения имени среды, принимаемого по умолчанию.

Формат 1:

Address [<имя среды> [<выражение>]]

Здесь <имя среды> представляет собой обычно внешнее (по отношению к
интерпретатору) имя, являющееся именем программы или процесса,
обеспечивающих эту среду и, следовательно, способных выполнять посылаемые
Вашей REXX-программой команды (подкоманды). Значение <выражения> вычисляется
и передаётся такой программе или процессу с целью выполнения ими в качестве
команды. Код завершения этой команды, возвращаемый средой, присваивается
переменной RC и может быть проанализирован в REXX-программе с целью оценки
правильности выполнения команды.
Так, например, если в файле типа 'BAT' в PC/DOS7 или в файле типа
'EXEC' в CMS встретится строка Address command 'ERASE' fid1, то в обоих
случаях в среду с именем 'COMMAND' (то есть командному процессору
операционной системы) будет передана команда 'ERASE'. Она должна удалить
файл, идентификатор которого присвоен REXX-переменной FID1. (В OS/2 тот же
эффект вызовет строка Address cmd 'ERASE' fid1). Если команда завершилась
успешно (в данном случае - если удалить указанный файл удалось), то
REXX-переменная RC примет значение '0', в противном случае - если, например,
указанный файл не существует либо не может быть удалён по какой-либо иной
причине - код завершения будет иным (полный перечень возможных кодов
завершения команд какой-либо среды и вызывающе их причины должны быть
приведены в технической документации при описании команд этой среды,
наиболее распространённые из них приведены в приложении xxx на стр. xxx).
Код завершения в случае, если указанная Вами команда не поддерживается
указанной средой (то есть не существует) зависит от среды и интерпретатора.
Так, среда 'COMMAND' вернёт значение '-3' в CMS или в случае использования
интерпретатора MSG на PC, '2' - в PC/DOS7, среда 'CMD' в OS/2 вернёт
значение '1041', среды 'KEDIT' и 'XEDIT' в той же ситуации возвращают
значение '-3'.
Код завершения, сформированный интерпретатором в случае, если указанная
Вами среда недоступна, также зависит от используемого интерпретатора. Так,
интерпретатор вернёт значение '-3' в CMS или в случае использования
интерпретатора MSG на PC, '30' - в PC/DOS7 или в OS/2.
Если <выражение> не указано, то оператор ADDRESS изменит среду,
принимаемую по умолчанию, на среду, имя которой указано операндом <имя
среды>. При этом предыдущее значение среды запоминается и может быть
использовано в дальнейшем, как показано ниже.
Если в качестве имени среды указана строка нулевой длины, то команда
будет передана в среду, принимаемую по умолчанию. В этом смысле строки
Address '' '<команда>'
и просто
'<команда>'
равнофункциональны (все строки, не распознанные интерпретатором в качестве
предложений языка (в том числе - все строки, заключённые в кавычки или
строки, просто представляющие собой выражения) считаются командами среды,