"Анри Бертьен. Стандартный набор операторов языка 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 '' '<команда>' и просто '<команда>' равнофункциональны (все строки, не распознанные интерпретатором в качестве предложений языка (в том числе - все строки, заключённые в кавычки или строки, просто представляющие собой выражения) считаются командами среды, |
|
|